From e89bab20a0e9814fa76ad55a13d8202b71a4d455 Mon Sep 17 00:00:00 2001 From: Grace Kloba Date: Tue, 16 Mar 2010 21:10:18 -0700 Subject: [PATCH] Pass mouse events to the subframe as the other ports by calling subframe handler. Most of the time, nav cache found the iframe and calls the correct eventhandler. But when nav cache fails, we use the top frame and we need to pass the mouse events to the subframe. http://b/issue?id=2521087 --- WebCore/page/android/EventHandlerAndroid.cpp | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/WebCore/page/android/EventHandlerAndroid.cpp b/WebCore/page/android/EventHandlerAndroid.cpp index 48f35c3e6..bdc5f2a3e 100644 --- a/WebCore/page/android/EventHandlerAndroid.cpp +++ b/WebCore/page/android/EventHandlerAndroid.cpp @@ -78,16 +78,6 @@ bool EventHandler::eventActivatedView(const PlatformMouseEvent&) const return false; } -// This function is called for mouse events by FrameView::handleMousePressEvent(). -// It is used to ensure that events are sync'ed correctly between frames. For example -// if the user presses down in one frame and up in another frame, this function will -// returns true, and pass the event to the correct frame. -bool EventHandler::passSubframeEventToSubframe(MouseEventWithHitTestResults&, Frame*, HitTestResult*) -{ - notImplemented(); - return false; -} - // This is called to route wheel events to child widgets when they are RenderWidget // as the parent usually gets wheel event. Don't have a mouse with a wheel to confirm // the operation of this function. @@ -99,18 +89,21 @@ bool EventHandler::passWheelEventToWidget(PlatformWheelEvent&, Widget*) bool EventHandler::passMousePressEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe) { - return passSubframeEventToSubframe(mev, subframe); + subframe->eventHandler()->handleMousePressEvent(mev.event()); + return true; } bool EventHandler::passMouseMoveEventToSubframe(MouseEventWithHitTestResults& mev, - Frame* subframe, HitTestResult*) + Frame* subframe, HitTestResult* hoveredNode) { - return passSubframeEventToSubframe(mev, subframe); + subframe->eventHandler()->handleMouseMoveEvent(mev.event(), hoveredNode); + return true; } bool EventHandler::passMouseReleaseEventToSubframe(MouseEventWithHitTestResults& mev, Frame* subframe) { - return passSubframeEventToSubframe(mev, subframe); + subframe->eventHandler()->handleMouseReleaseEvent(mev.event()); + return true; } class Clipboard : public RefCounted { -- 2.11.0