| Index: third_party/WebKit/Source/core/events/PointerEventFactory.cpp
|
| diff --git a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
|
| index 1859b52c095392365e3b4397d0d3c5c0838dae46..ef93631cd36dd7b0459ea194c434603f576bb1d1 100644
|
| --- a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
|
| +++ b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
|
| @@ -51,6 +51,23 @@ const AtomicString& pointerEventNameForMouseEventName(
|
| return emptyAtom;
|
| }
|
|
|
| +
|
| +unsigned short buttonToButtonsBitfield(WebPointerProperties::Button button)
|
| +{
|
| + switch (button) {
|
| + case WebPointerProperties::Button::NoButton:
|
| + return static_cast<unsigned short>(MouseEvent::Buttons::None);
|
| + case WebPointerProperties::Button::Left:
|
| + return static_cast<unsigned short>(MouseEvent::Buttons::Left);
|
| + case WebPointerProperties::Button::Right:
|
| + return static_cast<unsigned short>(MouseEvent::Buttons::Right);
|
| + case WebPointerProperties::Button::Middle:
|
| + return static_cast<unsigned short>(MouseEvent::Buttons::Middle);
|
| + }
|
| + NOTREACHED();
|
| + return 0;
|
| +}
|
| +
|
| } // namespace
|
|
|
| const int PointerEventFactory::s_invalidId = 0;
|
| @@ -91,8 +108,8 @@ void PointerEventFactory::setBubblesAndCancelable(
|
| }
|
|
|
| PointerEvent* PointerEventFactory::create(
|
| - const AtomicString& mouseEventName, const PlatformMouseEvent& mouseEvent,
|
| - EventTarget* relatedTarget,
|
| + const AtomicString& mouseEventName,
|
| + const PlatformMouseEvent& mouseEvent,
|
| LocalDOMWindow* view)
|
| {
|
| DCHECK(mouseEventName == EventTypeNames::mousemove
|
| @@ -125,9 +142,10 @@ PointerEvent* PointerEventFactory::create(
|
|
|
| if (pointerEventName == EventTypeNames::pointerdown
|
| || pointerEventName == EventTypeNames::pointerup) {
|
| - pointerEventInit.setButton(mouseEvent.button());
|
| - } else { // Only when pointerEventName == EventTypeNames::pointermove
|
| - pointerEventInit.setButton(NoButton);
|
| + pointerEventInit.setButton(static_cast<int>(mouseEvent.pointerProperties().button));
|
| + } else {
|
| + DCHECK(pointerEventName == EventTypeNames::pointermove);
|
| + pointerEventInit.setButton(static_cast<int>(WebPointerProperties::Button::NoButton));
|
| }
|
| pointerEventInit.setPressure(getPointerEventPressure(
|
| mouseEvent.pointerProperties().force, pointerEventInit.buttons()));
|
| @@ -138,14 +156,12 @@ PointerEvent* PointerEventFactory::create(
|
|
|
| // Make sure chorded buttons fire pointermove instead of pointerup/down.
|
| if ((pointerEventName == EventTypeNames::pointerdown
|
| - && (buttons & ~MouseEvent::buttonToButtons(mouseEvent.button())) != 0)
|
| + && (buttons & ~buttonToButtonsBitfield(mouseEvent.pointerProperties().button)) != 0)
|
| || (pointerEventName == EventTypeNames::pointerup && buttons != 0))
|
| pointerEventName = EventTypeNames::pointermove;
|
|
|
|
|
| pointerEventInit.setView(view);
|
| - if (relatedTarget)
|
| - pointerEventInit.setRelatedTarget(relatedTarget);
|
|
|
| return PointerEvent::create(pointerEventName, pointerEventInit);
|
| }
|
| @@ -178,7 +194,7 @@ PointerEvent* PointerEventFactory::create(const AtomicString& type,
|
| pointerEventInit.setScreenY(touchPoint.screenPos().y());
|
| pointerEventInit.setClientX(clientPoint.x());
|
| pointerEventInit.setClientY(clientPoint.y());
|
| - pointerEventInit.setButton(pointerPressedOrReleased ? LeftButton: NoButton);
|
| + pointerEventInit.setButton(static_cast<int>(pointerPressedOrReleased ? WebPointerProperties::Button::Left : WebPointerProperties::Button::NoButton));
|
| pointerEventInit.setPressure(getPointerEventPressure(
|
| touchPoint.force(), pointerEventInit.buttons()));
|
| pointerEventInit.setTiltX(touchPoint.pointerProperties().tiltX);
|
|
|