| 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 ff2da3c7ddce57cf5d8692c008262b125df98929..83b07ef2711c51e781cb2eacdafbc9a573cb863f 100644
|
| --- a/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| @@ -374,7 +374,7 @@ void EventHandler::clear()
|
| m_lastGestureScrollOverWidget = false;
|
| m_scrollbarHandlingScrollGesture = nullptr;
|
| m_touchPressed = false;
|
| - m_pointerIdManager.clear();
|
| + m_pointerEventFactory.clear();
|
| m_preventMouseEventForPointerTypeMouse = false;
|
| m_inPointerCanceledState = false;
|
| m_mouseDownMayStartDrag = false;
|
| @@ -1618,7 +1618,7 @@ bool EventHandler::dispatchPointerEvent(Node* target, const AtomicString& eventT
|
| if (!RuntimeEnabledFeatures::pointerEventEnabled())
|
| return false;
|
|
|
| - RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create(eventType, true,
|
| + RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(eventType,
|
| mouseEvent, relatedTarget, m_frame->document()->domWindow());
|
| target->dispatchEvent(pointerEvent.get());
|
| return pointerEvent->defaultPrevented() || pointerEvent->defaultHandled();
|
| @@ -3654,22 +3654,17 @@ void EventHandler::dispatchPointerEvents(const PlatformTouchEvent& event,
|
| for (unsigned i = 0; i < touchInfos.size(); ++i) {
|
| TouchInfo& touchInfo = touchInfos[i];
|
| const PlatformTouchPoint& touchPoint = touchInfo.point;
|
| - const unsigned& pointerId = touchPoint.id();
|
| const PlatformTouchPoint::State pointState = touchPoint.state();
|
|
|
| +
|
| if (pointState == PlatformTouchPoint::TouchStationary || !touchInfo.knownTarget)
|
| continue;
|
|
|
| bool pointerReleasedOrCancelled = pointState == PlatformTouchPoint::TouchReleased
|
| || pointState == PlatformTouchPoint::TouchCancelled;
|
| - const WebPointerProperties::PointerType pointerType = touchPoint.pointerProperties().pointerType;
|
| -
|
| - if (pointState == PlatformTouchPoint::TouchPressed)
|
| - m_pointerIdManager.add(pointerType, pointerId);
|
|
|
| - RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create(
|
| + RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.create(
|
| pointerEventNameForTouchPointState(pointState),
|
| - m_pointerIdManager.isPrimary(pointerType, pointerId),
|
| touchPoint, event.modifiers(),
|
| touchInfo.adjustedRadius.width(), touchInfo.adjustedRadius.height(),
|
| touchInfo.adjustedPagePoint.x(), touchInfo.adjustedPagePoint.y());
|
| @@ -3679,7 +3674,7 @@ void EventHandler::dispatchPointerEvents(const PlatformTouchEvent& event,
|
|
|
| // Remove the released/cancelled id at the end to correctly determine primary id above.
|
| if (pointerReleasedOrCancelled)
|
| - m_pointerIdManager.remove(pointerType, pointerId);
|
| + m_pointerEventFactory.remove(pointerEvent);
|
| }
|
| }
|
|
|
| @@ -3691,23 +3686,16 @@ void EventHandler::sendPointerCancels(WillBeHeapVector<TouchInfo>& touchInfos)
|
| for (unsigned i = 0; i < touchInfos.size(); ++i) {
|
| TouchInfo& touchInfo = touchInfos[i];
|
| const PlatformTouchPoint& point = touchInfo.point;
|
| - const unsigned& pointerId = point.id();
|
| const PlatformTouchPoint::State pointState = point.state();
|
|
|
| if (pointState == PlatformTouchPoint::TouchReleased
|
| || pointState == PlatformTouchPoint::TouchCancelled)
|
| continue;
|
|
|
| - PointerEventInit pointerEventInit;
|
| - pointerEventInit.setPointerId(pointerId);
|
| - pointerEventInit.setBubbles(true);
|
| - pointerEventInit.setCancelable(false);
|
| -
|
| - RefPtrWillBeRawPtr<PointerEvent> pointerEvent = PointerEvent::create(
|
| - EventTypeNames::pointercancel, pointerEventInit);
|
| + RefPtrWillBeRawPtr<PointerEvent> pointerEvent = m_pointerEventFactory.createPointerCancel(point);
|
| touchInfo.touchTarget->dispatchEvent(pointerEvent.get());
|
|
|
| - m_pointerIdManager.remove(WebPointerProperties::PointerType::Touch, pointerId);
|
| + m_pointerEventFactory.remove(pointerEvent);
|
| }
|
| }
|
|
|
|
|