Index: third_party/WebKit/Source/core/input/EventHandler.cpp |
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp |
index f1be4b37d03a6d0ad54fa087c08573ef3f917a14..b46fd2760b71a3b29afe95bbad213069b825f6d9 100644 |
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp |
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp |
@@ -385,7 +385,7 @@ WebInputEventResult EventHandler::handleMouseDraggedEvent(const MouseEventWithHi |
// that ends as a result of a mouse release does not send a mouse release |
// event. As a result, m_mousePressed also ends up remaining true until |
// the next mouse release event seen by the EventHandler. |
- if (event.event().button() != LeftButton) |
+ if (event.event().pointerProperties().button != WebPointerProperties::Button::Left) |
m_mousePressed = false; |
if (!m_mousePressed) |
@@ -778,7 +778,7 @@ WebInputEventResult EventHandler::handleMousePressEvent(const PlatformMouseEvent |
// For 4th/5th button in the mouse since Chrome does not yet send |
// button value to Blink but in some cases it does send the event. |
// This check is needed to suppress such an event (crbug.com/574959) |
- if (mouseEvent.button() == NoButton) |
+ if (mouseEvent.pointerProperties().button == WebPointerProperties::Button::NoButton) |
return WebInputEventResult::HandledSuppressed; |
UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); |
@@ -900,7 +900,7 @@ WebInputEventResult EventHandler::handleMousePressEvent(const PlatformMouseEvent |
eventResult = handleMousePressEvent(mev); |
} |
- if (mev.hitTestResult().innerNode() && mouseEvent.button() == LeftButton) { |
+ if (mev.hitTestResult().innerNode() && mouseEvent.pointerProperties().button == WebPointerProperties::Button::Left) { |
ASSERT(mouseEvent.type() == PlatformEvent::MousePressed); |
HitTestResult result = mev.hitTestResult(); |
result.setToShadowHostIfInUserAgentShadowRoot(); |
@@ -1100,7 +1100,7 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve |
// For 4th/5th button in the mouse since Chrome does not yet send |
// button value to Blink but in some cases it does send the event. |
// This check is needed to suppress such an event (crbug.com/574959) |
- if (mouseEvent.button() == NoButton) |
+ if (mouseEvent.pointerProperties().button == WebPointerProperties::Button::NoButton) |
return WebInputEventResult::HandledSuppressed; |
if (!mouseEvent.fromTouch()) |
@@ -1152,10 +1152,12 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve |
// We only prevent click event when the click may cause contextmenu to popup. |
// However, we always send auxclick. |
- bool contextMenuEvent = !RuntimeEnabledFeatures::auxclickEnabled() && mouseEvent.button() == RightButton; |
+ bool contextMenuEvent = !RuntimeEnabledFeatures::auxclickEnabled() |
+ && mouseEvent.pointerProperties().button == WebPointerProperties::Button::Right; |
#if OS(MACOSX) |
// FIXME: The Mac port achieves the same behavior by checking whether the context menu is currently open in WebPage::mouseEvent(). Consider merging the implementations. |
- if (mouseEvent.button() == LeftButton && mouseEvent.getModifiers() & PlatformEvent::CtrlKey) |
+ if (mouseEvent.pointerProperties().button == WebPointerProperties::Button::Left |
+ && mouseEvent.getModifiers() & PlatformEvent::CtrlKey) |
contextMenuEvent = true; |
#endif |
@@ -1185,7 +1187,8 @@ WebInputEventResult EventHandler::handleMouseReleaseEvent(const PlatformMouseEve |
// correctly. Moreover, clickTargetNode is different from |
// mev.innerNode at drag-release. |
clickEventResult = toWebInputEventResult(clickTargetNode->dispatchMouseEvent(mev.event(), |
- !RuntimeEnabledFeatures::auxclickEnabled() || (mev.event().button() == MouseButton::LeftButton) |
+ !RuntimeEnabledFeatures::auxclickEnabled() |
+ || (mev.event().pointerProperties().button == WebPointerProperties::Button::Left) |
? EventTypeNames::click |
: EventTypeNames::auxclick, |
m_clickCount)); |
@@ -1520,7 +1523,7 @@ WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents(const Ato |
Node* newNodeUnderMouse = nullptr; |
const auto& eventResult = m_pointerEventManager.sendMousePointerEvent( |
- m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr, |
+ m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, |
lastNodeUnderMouse, &newNodeUnderMouse); |
m_nodeUnderMouse = newNodeUnderMouse; |
return eventResult; |
@@ -1898,7 +1901,7 @@ void EventHandler::updateGestureTargetNodeForMouseEvent(const GestureEventWithHi |
const PlatformGestureEvent& gestureEvent = targetedEvent.event(); |
unsigned modifiers = gestureEvent.getModifiers(); |
PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globalPosition(), |
- NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, |
+ WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, |
static_cast<PlatformEvent::Modifiers>(modifiers), |
PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerProperties::PointerType::Mouse); |
@@ -2106,7 +2109,7 @@ WebInputEventResult EventHandler::sendContextMenuEventForKey(Element* overrideTa |
eventType = PlatformEvent::MouseReleased; |
PlatformMouseEvent mouseEvent(locationInRootFrame, globalPosition, |
- RightButton, eventType, 1, |
+ WebPointerProperties::Button::Right, eventType, 1, |
PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, |
WTF::monotonicallyIncreasingTime(), WebPointerProperties::PointerType::Mouse); |
@@ -2186,7 +2189,7 @@ void EventHandler::fakeMouseMoveEventTimerFired(TimerBase* timer) |
if (!isCursorVisible()) |
return; |
- PlatformMouseEvent fakeMouseMoveEvent(m_lastKnownMousePosition, m_lastKnownMouseGlobalPosition, NoButton, PlatformEvent::MouseMoved, 0, PlatformKeyboardEvent::getCurrentModifierState(), PlatformMouseEvent::RealOrIndistinguishable, monotonicallyIncreasingTime(), WebPointerProperties::PointerType::Mouse); |
+ PlatformMouseEvent fakeMouseMoveEvent(m_lastKnownMousePosition, m_lastKnownMouseGlobalPosition, WebPointerProperties::Button::NoButton, PlatformEvent::MouseMoved, 0, PlatformKeyboardEvent::getCurrentModifierState(), PlatformMouseEvent::RealOrIndistinguishable, monotonicallyIncreasingTime(), WebPointerProperties::PointerType::Mouse); |
handleMouseMoveEvent(fakeMouseMoveEvent); |
} |
@@ -2343,12 +2346,12 @@ bool EventHandler::handleDragDropIfPossible(const GestureEventWithHitTestResults |
// TODO(mustaq): Suppressing long-tap MouseEvents could break |
// drag-drop. Will do separately because of the risk. crbug.com/606938. |
- PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MousePressed, 1, |
+ PlatformMouseEvent mouseDownEvent(adjustedPoint, gestureEvent.globalPosition(), WebPointerProperties::Button::Left, PlatformEvent::MousePressed, 1, |
static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftButtonDown), |
PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), WebPointerProperties::PointerType::Mouse); |
m_mouseDown = mouseDownEvent; |
- PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosition(), LeftButton, PlatformEvent::MouseMoved, 1, |
+ PlatformMouseEvent mouseDragEvent(adjustedPoint, gestureEvent.globalPosition(), WebPointerProperties::Button::Left, PlatformEvent::MouseMoved, 1, |
static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::LeftButtonDown), |
PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), WebPointerProperties::PointerType::Mouse); |
HitTestRequest request(HitTestRequest::ReadOnly); |