Fix orange world focus ring issue
authorSangYong Park <sy302.park@samsung.com>
Fri, 25 Oct 2013 04:25:30 +0000 (13:25 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Fri, 25 Oct 2013 09:23:14 +0000 (09:23 +0000)
[Title] Fix orange world focus ring issue
[Issue#] P131023-00136
[Problem] Focus ring is smaller than image in orange world.
[Cause] Clipped by invalid rect.
[Solution] Modify clipping rect.

Change-Id: Icf5f7390d8c865e03018c3950162a675906e51e4

Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp

index e53c7e6..1fad3cf 100755 (executable)
@@ -1859,8 +1859,14 @@ void WebPage::calcFocusedRects(Node* node, Vector<IntRect>& rects) const
     } else {
         if (node->isDocumentNode())
             rect = static_cast<Document*>(node)->frame()->view()->visibleContentRect();
-        else
-            rect = renderer->absoluteBoundingBoxRect();
+        else {
+            rect = renderer->clippedOverflowRectForRepaint(renderer->enclosingBoxModelObject());
+            rect = LayoutRect(renderer->localToAbsoluteQuad(FloatRect(rect)).boundingBox());
+
+            LayoutRect boundingRect = renderer->absoluteBoundingBoxRect();
+            if (boundingRect.contains(rect))
+                rect = boundingRect;
+        }
     }
     rect.moveBy(frameOffset);