Commit 16b7f76e authored by rbyers@chromium.org's avatar rbyers@chromium.org

Correctly mark all mouse events derived from touch with FromTouch

Bug 401177 added more explicit tracking of the source of synthetic mouse
events.  This CL updates the remianing places that generate mouse event
from touch input to explicitly mark them as so.  To do this I've removed
an ASSERT I added that attempted to lock-in hit-test reduction
improvements.  We have a dedicated test for this (hit-test-counts.html)
and so the ASSERT wasn't adding much.  It's not worth the effort at this
point to refactor the touch drag and drop code (a little used feature)
to remove a couple of hit tests (but I've left the comments in place
saying that ideally we'd do so in the future).

BUG=408660

Review URL: https://codereview.chromium.org/558753002

git-svn-id: svn://svn.chromium.org/blink/trunk@181780 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent f21e34c1
...@@ -1226,9 +1226,6 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent) ...@@ -1226,9 +1226,6 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent)
} }
m_mouseDownWasInSubframe = false; m_mouseDownWasInSubframe = false;
// Mouse events simulated from touch should not hit-test again.
ASSERT(!mouseEvent.fromTouch());
HitTestRequest request(HitTestRequest::Active); HitTestRequest request(HitTestRequest::Active);
// Save the document point we generate in case the window coordinate is invalidated by what happens // Save the document point we generate in case the window coordinate is invalidated by what happens
// when we dispatch the event. // when we dispatch the event.
...@@ -2288,11 +2285,11 @@ bool EventHandler::handleGestureLongPress(const GestureEventWithHitTestResults& ...@@ -2288,11 +2285,11 @@ bool EventHandler::handleGestureLongPress(const GestureEventWithHitTestResults&
m_longTapShouldInvokeContextMenu = false; m_longTapShouldInvokeContextMenu = false;
if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_frame->view()) { if (m_frame->settings() && m_frame->settings()->touchDragDropEnabled() && m_frame->view()) {
PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, 1, PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, 1,
gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::RealOrIndistinguishable, WTF::currentTime()); gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::FromTouch, WTF::currentTime());
m_mouseDown = mouseDownEvent; m_mouseDown = mouseDownEvent;
PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseMoved, 1, PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseMoved, 1,
gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::RealOrIndistinguishable, WTF::currentTime()); gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::FromTouch, WTF::currentTime());
HitTestRequest request(HitTestRequest::ReadOnly); HitTestRequest request(HitTestRequest::ReadOnly);
MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragEvent); MouseEventWithHitTestResults mev = prepareMouseEvent(request, mouseDragEvent);
m_didStartDrag = false; m_didStartDrag = false;
...@@ -2808,7 +2805,7 @@ bool EventHandler::sendContextMenuEventForGesture(const GestureEventWithHitTestR ...@@ -2808,7 +2805,7 @@ bool EventHandler::sendContextMenuEventForGesture(const GestureEventWithHitTestR
PlatformEvent::Type eventType = PlatformEvent::MousePressed; PlatformEvent::Type eventType = PlatformEvent::MousePressed;
#endif #endif
PlatformMouseEvent mouseEvent(targetedEvent.event().position(), targetedEvent.event().globalPosition(), RightButton, eventType, 1, false, false, false, false, PlatformMouseEvent::RealOrIndistinguishable, WTF::currentTime()); PlatformMouseEvent mouseEvent(targetedEvent.event().position(), targetedEvent.event().globalPosition(), RightButton, eventType, 1, false, false, false, false, PlatformMouseEvent::FromTouch, WTF::currentTime());
// To simulate right-click behavior, we send a right mouse down and then // To simulate right-click behavior, we send a right mouse down and then
// context menu event. // context menu event.
// FIXME: Send HitTestResults to avoid redundant hit tests. // FIXME: Send HitTestResults to avoid redundant hit tests.
......
...@@ -293,9 +293,9 @@ bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent ...@@ -293,9 +293,9 @@ bool PopupContainer::handleGestureEvent(const PlatformGestureEvent& gestureEvent
{ {
switch (gestureEvent.type()) { switch (gestureEvent.type()) {
case PlatformEvent::GestureTap: { case PlatformEvent::GestureTap: {
PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, PlatformEvent::MouseMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::RealOrIndistinguishable, gestureEvent.timestamp()); PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), NoButton, PlatformEvent::MouseMoved, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::FromTouch, gestureEvent.timestamp());
PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::RealOrIndistinguishable, gestureEvent.timestamp()); PlatformMouseEvent fakeMouseDown(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::FromTouch, gestureEvent.timestamp());
PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::RealOrIndistinguishable, gestureEvent.timestamp()); PlatformMouseEvent fakeMouseUp(gestureEvent.position(), gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseReleased, /* clickCount */ 1, gestureEvent.shiftKey(), gestureEvent.ctrlKey(), gestureEvent.altKey(), gestureEvent.metaKey(), PlatformMouseEvent::FromTouch, gestureEvent.timestamp());
// handleMouseMoveEvent(fakeMouseMove); // handleMouseMoveEvent(fakeMouseMove);
handleMouseDownEvent(fakeMouseDown); handleMouseDownEvent(fakeMouseDown);
handleMouseReleaseEvent(fakeMouseUp); handleMouseReleaseEvent(fakeMouseUp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment