HitTestResult result = hitTestResultAtPoint(point, false);
Node* node = result.innerNode();
if (!node) {
+ changeFocusedFrame(m_frame->page() ? m_frame->page()->mainFrame() : 0);
setMousePressNode(0);
return false;
}
&& renderer->enclosingLayer()->hasAcceleratedTouchScrolling()
&& renderer->enclosingLayer()->layerForScrollingContents()) {
overflowRenderer = renderer;
+ changeFocusedFrame(node->document()->frame());
setMousePressNode(node);
return true;
}
// Find overflow node.
if (renderer->isBox() && toRenderBox(renderer)->scrollsOverflow()
&& toRenderBox(renderer)->canBeScrolledAndHasScrollableArea()) {
+ changeFocusedFrame(node->document()->frame());
setMousePressNode(node);
return true;
}
#if ENABLE(TIZEN_INPUT_BOX_SCROLL)
// Setting mouse press for inline text box
if (renderer->isBox() && renderer->isTextField()) {
+ changeFocusedFrame(node->document()->frame());
setMousePressNode(node);
return true;
}
node = 0;
} while (node);
+ changeFocusedFrame(m_frame->page() ? m_frame->page()->mainFrame() : 0);
setMousePressNode(0);
return false;
}
+
+void EventHandler::changeFocusedFrame(PassRefPtr<Frame> targetFrame)
+{
+ if (!m_frame->page())
+ return;
+
+ bool changedFocusedFrame = targetFrame != m_frame->page()->focusController()->focusedOrMainFrame();
+ if (changedFocusedFrame)
+ m_frame->page()->focusController()->setFocusedFrame(targetFrame);
+}
#endif
bool EventHandler::logicalScrollOverflow(ScrollLogicalDirection direction, ScrollGranularity granularity, Node* startingNode)
#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION)
bool scrollOverflow(const FloatPoint&);
bool setMousePressNodeAtPoint(const IntPoint&, bool checkOverflowLayer, RenderObject*&);
+ void changeFocusedFrame(PassRefPtr<Frame>);
#endif
bool scrollRecursively(ScrollDirection, ScrollGranularity, Node* startingNode = 0);
bool logicalScrollRecursively(ScrollLogicalDirection, ScrollGranularity, Node* startingNode = 0);
{
RenderObject* renderer = 0;
id = 0;
- pressed = m_page->focusController()->focusedOrMainFrame()->eventHandler()->setMousePressNodeAtPoint(point, checkOverflowLayer, renderer);
+ pressed = m_page->mainFrame()->eventHandler()->setMousePressNodeAtPoint(point, checkOverflowLayer, renderer);
#if ENABLE(TIZEN_CSS_OVERFLOW_SCROLL_ACCELERATION_ON_UI_SIDE)
if (pressed && renderer)
id = toWebGraphicsLayer(renderer->enclosingLayer()->layerForScrollingContents())->id();