diff options
3 files changed, 8 insertions, 1 deletions
diff --git a/chromium/third_party/WebKit/Source/core/input/EventHandler.cpp b/chromium/third_party/WebKit/Source/core/input/EventHandler.cpp index 145809951bf..fd1038dc2ee 100644 --- a/chromium/third_party/WebKit/Source/core/input/EventHandler.cpp +++ b/chromium/third_party/WebKit/Source/core/input/EventHandler.cpp @@ -893,6 +893,8 @@ WebInputEventResult EventHandler::HandleMouseMoveOrLeaveEvent( last_mouse_move_event_subframe_ != new_subframe) { last_mouse_move_event_subframe_->GetEventHandler().HandleMouseLeaveEvent( mev.Event()); + last_mouse_move_event_subframe_->GetEventHandler() + .mouse_event_manager_->SetLastMousePositionAsUnknown(); } if (new_subframe) { diff --git a/chromium/third_party/WebKit/Source/core/input/MouseEventManager.cpp b/chromium/third_party/WebKit/Source/core/input/MouseEventManager.cpp index 9ac9bf3478a..607ec9a47e0 100644 --- a/chromium/third_party/WebKit/Source/core/input/MouseEventManager.cpp +++ b/chromium/third_party/WebKit/Source/core/input/MouseEventManager.cpp @@ -583,11 +583,15 @@ FloatPoint MouseEventManager::LastKnownMousePositionGlobal() { } void MouseEventManager::SetLastKnownMousePosition(const WebMouseEvent& event) { - is_mouse_position_unknown_ = false; + is_mouse_position_unknown_ = event.GetType() == WebInputEvent::kMouseLeave; last_known_mouse_position_ = event.PositionInRootFrame(); last_known_mouse_global_position_ = event.PositionInScreen(); } +void MouseEventManager::SetLastMousePositionAsUnknown() { + is_mouse_position_unknown_ = true; +} + void MouseEventManager::DispatchFakeMouseMoveEventSoon( MouseEventManager::FakeMouseMoveReason fake_mouse_move_reason) { if (fake_mouse_move_reason == diff --git a/chromium/third_party/WebKit/Source/core/input/MouseEventManager.h b/chromium/third_party/WebKit/Source/core/input/MouseEventManager.h index 02d61cd3ac6..6f56ed44ee7 100644 --- a/chromium/third_party/WebKit/Source/core/input/MouseEventManager.h +++ b/chromium/third_party/WebKit/Source/core/input/MouseEventManager.h @@ -93,6 +93,7 @@ class CORE_EXPORT MouseEventManager final void DispatchFakeMouseMoveEventSoonInQuad(const FloatQuad&); void SetLastKnownMousePosition(const WebMouseEvent&); + void SetLastMousePositionAsUnknown(); bool HandleDragDropIfPossible(const GestureEventWithHitTestResults&); |