#if ENABLE(TIZEN_WEBKIT2_HIT_TEST)
#if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
#if ENABLE(TOUCH_ADJUSTMENT)
-static IntRect getFocusedRect(HitTestResult hitTestResult, Page* page, const IntSize& area)
+static IntRect getFocusedRect(HitTestResult hitTestResult, Page* page, const IntPoint& point, const IntSize& area)
#else
static IntRect getFocusedRect(HitTestResult hitTestResult, Page* page)
#endif
Node* adjustedNode = 0;
IntPoint adustedPoint;
Frame* mainFrame = page->mainFrame();
- mainFrame->eventHandler()->bestClickableNodeForTouchPoint(hitTestResult.roundedPoint(), IntSize(area.width() / 2, area.height() / 2), adustedPoint, adjustedNode);
+ mainFrame->eventHandler()->bestClickableNodeForTouchPoint(point, IntSize(area.width() / 2, area.height() / 2), adustedPoint, adjustedNode);
if (adjustedNode)
node = adjustedNode;
Node* focusableNode = node;
while (focusableNode) {
RenderObject* renderer = focusableNode->renderer();
- if (renderer && renderer->isRoot())
+ if (renderer && (renderer->isBody() || renderer->isRenderView() || renderer->isRoot()))
break;
if (focusableNode->isFocusable()) {
break;
}
+ if (focusableNode->supportsFocus()
+ || focusableNode->hasEventListeners(eventNames().clickEvent)
+ || focusableNode->hasEventListeners(eventNames().mousedownEvent)
+ || focusableNode->hasEventListeners(eventNames().mouseupEvent)) {
+ isFocusRingDrawable = true;
+ break;
+ }
+
focusableNode = focusableNode->parentNode();
}
#if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
#if ENABLE(TOUCH_ADJUSTMENT)
- hitTestResultData.focusedRect = getFocusedRect(hitTestResult, m_page.get(), area);
+ hitTestResultData.focusedRect = getFocusedRect(hitTestResult, m_page.get(), point, area);
#else
hitTestResultData.focusedRect = getFocusedRect(hitTestResult, m_page.get());
#endif