Index: third_party/WebKit/Source/core/input/GestureManager.cpp |
diff --git a/third_party/WebKit/Source/core/input/GestureManager.cpp b/third_party/WebKit/Source/core/input/GestureManager.cpp |
index 780be37131a5aa33416070187adf5d9f83057405..5646057fc0f7b85e343118b334a0532e3e5b79c7 100644 |
--- a/third_party/WebKit/Source/core/input/GestureManager.cpp |
+++ b/third_party/WebKit/Source/core/input/GestureManager.cpp |
@@ -150,15 +150,16 @@ WebInputEventResult GestureManager::handleGestureTap( |
const unsigned modifiers = gestureEvent.modifiers(); |
if (!m_suppressMouseEventsFromGestures) { |
- PlatformMouseEvent fakeMouseMove( |
- gestureEvent, WebPointerProperties::Button::NoButton, |
- PlatformEvent::MouseMoved, |
- /* clickCount */ 0, static_cast<PlatformEvent::Modifiers>(modifiers), |
- PlatformMouseEvent::FromTouch, |
- TimeTicks::FromSeconds(gestureEvent.timeStampSeconds()), |
- WebPointerProperties::PointerType::Mouse); |
+ WebMouseEvent fakeMouseMove( |
+ WebInputEvent::MouseMove, gestureEvent, |
+ WebPointerProperties::Button::NoButton, |
+ /* clickCount */ 0, |
+ static_cast<PlatformEvent::Modifiers>( |
+ modifiers | WebInputEvent::Modifiers::IsCompatibilityEventForTouch), |
+ gestureEvent.timeStampSeconds()); |
m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
- currentHitTest.innerNode(), EventTypeNames::mousemove, fakeMouseMove); |
+ currentHitTest.innerNode(), currentHitTest.canvasRegionId(), |
+ EventTypeNames::mousemove, fakeMouseMove); |
} |
// Do a new hit-test in case the mousemove event changed the DOM. |
@@ -192,14 +193,13 @@ WebInputEventResult GestureManager::handleGestureTap( |
m_mouseEventManager->setClickNode(tappedNonTextNode); |
- PlatformMouseEvent fakeMouseDown( |
- gestureEvent, WebPointerProperties::Button::Left, |
- PlatformEvent::MousePressed, gestureEvent.tapCount(), |
- static_cast<PlatformEvent::Modifiers>(modifiers | |
- PlatformEvent::LeftButtonDown), |
- PlatformMouseEvent::FromTouch, |
- TimeTicks::FromSeconds(gestureEvent.timeStampSeconds()), |
- WebPointerProperties::PointerType::Mouse); |
+ WebMouseEvent fakeMouseDown( |
+ WebInputEvent::MouseDown, gestureEvent, |
+ WebPointerProperties::Button::Left, gestureEvent.tapCount(), |
+ static_cast<PlatformEvent::Modifiers>( |
+ modifiers | WebInputEvent::Modifiers::LeftButtonDown | |
+ WebInputEvent::Modifiers::IsCompatibilityEventForTouch), |
+ gestureEvent.timeStampSeconds()); |
// TODO(mustaq): We suppress MEs plus all it's side effects. What would that |
// mean for for TEs? What's the right balance here? crbug.com/617255 |
@@ -210,8 +210,8 @@ WebInputEventResult GestureManager::handleGestureTap( |
mouseDownEventResult = |
m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
- currentHitTest.innerNode(), EventTypeNames::mousedown, |
- fakeMouseDown); |
+ currentHitTest.innerNode(), currentHitTest.canvasRegionId(), |
+ EventTypeNames::mousedown, fakeMouseDown); |
m_selectionController->initializeSelectionState(); |
if (mouseDownEventResult == WebInputEventResult::NotHandled) |
mouseDownEventResult = m_mouseEventManager->handleMouseFocus( |
@@ -240,19 +240,18 @@ WebInputEventResult GestureManager::handleGestureTap( |
m_frame, adjustedPoint, hitType); |
} |
- PlatformMouseEvent fakeMouseUp( |
- gestureEvent, WebPointerProperties::Button::Left, |
- PlatformEvent::MouseReleased, gestureEvent.tapCount(), |
- static_cast<PlatformEvent::Modifiers>(modifiers), |
- PlatformMouseEvent::FromTouch, |
- TimeTicks::FromSeconds(gestureEvent.timeStampSeconds()), |
- WebPointerProperties::PointerType::Mouse); |
+ WebMouseEvent fakeMouseUp( |
+ WebInputEvent::MouseUp, gestureEvent, WebPointerProperties::Button::Left, |
+ gestureEvent.tapCount(), |
+ static_cast<PlatformEvent::Modifiers>( |
+ modifiers | WebInputEvent::Modifiers::IsCompatibilityEventForTouch), |
+ gestureEvent.timeStampSeconds()); |
WebInputEventResult mouseUpEventResult = |
m_suppressMouseEventsFromGestures |
? WebInputEventResult::HandledSuppressed |
: m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
- currentHitTest.innerNode(), EventTypeNames::mouseup, |
- fakeMouseUp); |
+ currentHitTest.innerNode(), currentHitTest.canvasRegionId(), |
+ EventTypeNames::mouseup, fakeMouseUp); |
WebInputEventResult clickEventResult = WebInputEventResult::NotHandled; |
if (tappedNonTextNode) { |
@@ -268,7 +267,7 @@ WebInputEventResult GestureManager::handleGestureTap( |
*tappedNonTextNode, EventHandlingUtil::parentForClickEvent); |
clickEventResult = |
m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
- clickTargetNode, EventTypeNames::click, fakeMouseUp); |
+ clickTargetNode, String(), EventTypeNames::click, fakeMouseUp); |
} |
m_mouseEventManager->setClickNode(nullptr); |
} |
@@ -361,30 +360,31 @@ WebInputEventResult GestureManager::sendContextMenuEventForGesture( |
unsigned modifiers = gestureEvent.modifiers(); |
if (!m_suppressMouseEventsFromGestures) { |
- // Send MouseMoved event prior to handling (https://crbug.com/485290). |
- PlatformMouseEvent fakeMouseMove( |
- gestureEvent, WebPointerProperties::Button::NoButton, |
- PlatformEvent::MouseMoved, |
- /* clickCount */ 0, static_cast<PlatformEvent::Modifiers>(modifiers), |
- PlatformMouseEvent::FromTouch, |
- TimeTicks::FromSeconds(gestureEvent.timeStampSeconds()), |
- WebPointerProperties::PointerType::Mouse); |
+ // Send MouseMove event prior to handling (https://crbug.com/485290). |
+ WebMouseEvent fakeMouseMove( |
+ WebInputEvent::MouseMove, gestureEvent, |
+ WebPointerProperties::Button::NoButton, |
+ /* clickCount */ 0, |
+ static_cast<PlatformEvent::Modifiers>( |
+ modifiers | WebInputEvent::IsCompatibilityEventForTouch), |
+ gestureEvent.timeStampSeconds()); |
m_mouseEventManager->setMousePositionAndDispatchMouseEvent( |
- targetedEvent.hitTestResult().innerNode(), EventTypeNames::mousemove, |
+ targetedEvent.hitTestResult().innerNode(), |
+ targetedEvent.canvasRegionId(), EventTypeNames::mousemove, |
fakeMouseMove); |
} |
- PlatformEvent::EventType eventType = PlatformEvent::MousePressed; |
+ WebInputEvent::Type eventType = WebInputEvent::MouseDown; |
if (m_frame->settings() && m_frame->settings()->getShowContextMenuOnMouseUp()) |
- eventType = PlatformEvent::MouseReleased; |
+ eventType = WebInputEvent::MouseUp; |
- PlatformMouseEvent mouseEvent( |
- gestureEvent, WebPointerProperties::Button::Right, eventType, |
+ WebMouseEvent mouseEvent( |
+ eventType, gestureEvent, WebPointerProperties::Button::Right, |
/* clickCount */ 1, |
static_cast<PlatformEvent::Modifiers>( |
- modifiers | PlatformEvent::Modifiers::RightButtonDown), |
- PlatformMouseEvent::FromTouch, TimeTicks::Now(), |
- WebPointerProperties::PointerType::Mouse); |
+ modifiers | PlatformEvent::Modifiers::RightButtonDown | |
+ WebInputEvent::IsCompatibilityEventForTouch), |
+ gestureEvent.timeStampSeconds()); |
if (!m_suppressMouseEventsFromGestures && m_frame->view()) { |
HitTestRequest request(HitTestRequest::Active); |