Index: third_party/WebKit/Source/core/input/PointerEventManager.cpp |
diff --git a/third_party/WebKit/Source/core/input/PointerEventManager.cpp b/third_party/WebKit/Source/core/input/PointerEventManager.cpp |
index d6d452f8d44fe95c171f0237ece83568b6541477..9b4aa2ef2ab13df5d2211b36aef04922c648d15d 100644 |
--- a/third_party/WebKit/Source/core/input/PointerEventManager.cpp |
+++ b/third_party/WebKit/Source/core/input/PointerEventManager.cpp |
@@ -147,11 +147,9 @@ EventTarget* PointerEventManager::getEffectiveTargetForPointerEvent( |
return target; |
} |
-void PointerEventManager::sendMouseAndPossiblyPointerBoundaryEvents( |
- Node* exitedNode, |
+void PointerEventManager::sendMouseAndPointerBoundaryEvents( |
Node* enteredNode, |
- const PlatformMouseEvent& mouseEvent, |
- bool isFrameBoundaryTransition) |
+ const PlatformMouseEvent& mouseEvent) |
{ |
// Mouse event type does not matter as this pointerevent will only be used |
// to create boundary pointer events and its type will be overridden in |
@@ -165,14 +163,13 @@ void PointerEventManager::sendMouseAndPossiblyPointerBoundaryEvents( |
// stage. So if the event is not frame boundary transition it is only a |
// compatibility mouse event and we do not need to change pointer event |
// behavior regarding preventMouseEvent state in that case. |
- if (isFrameBoundaryTransition && dummyPointerEvent->buttons() == 0 |
- && dummyPointerEvent->isPrimary()) { |
+ if (dummyPointerEvent->buttons() == 0 && dummyPointerEvent->isPrimary()) { |
m_preventMouseEventForPointerType[toPointerTypeIndex( |
mouseEvent.pointerProperties().pointerType)] = false; |
} |
processCaptureAndPositionOfPointerEvent(dummyPointerEvent, enteredNode, |
- exitedNode, mouseEvent, true, isFrameBoundaryTransition); |
+ mouseEvent, true); |
} |
void PointerEventManager::sendBoundaryEvents( |
@@ -406,9 +403,7 @@ WebInputEventResult PointerEventManager::sendTouchPointerEvent( |
WebInputEventResult PointerEventManager::sendMousePointerEvent( |
Node* target, const AtomicString& mouseEventType, |
- int clickCount, const PlatformMouseEvent& mouseEvent, |
- Node* lastNodeUnderMouse, |
- Node** newNodeUnderMouse) |
+ const PlatformMouseEvent& mouseEvent) |
{ |
PointerEvent* pointerEvent = |
m_pointerEventFactory.create(mouseEventType, mouseEvent, |
@@ -428,15 +423,8 @@ WebInputEventResult PointerEventManager::sendMousePointerEvent( |
} |
} |
- EventTarget* pointerEventTarget = processCaptureAndPositionOfPointerEvent(pointerEvent, target, |
- lastNodeUnderMouse, mouseEvent, true, true); |
- |
- if (pointerEventTarget) { |
- // This is to prevent incorrect boundary events if capturing transition was |
- // delayed. |
- *newNodeUnderMouse = pointerEventTarget->toNode(); |
- DCHECK(*newNodeUnderMouse); |
- } |
+ EventTarget* pointerEventTarget = processCaptureAndPositionOfPointerEvent( |
+ pointerEvent, target, mouseEvent, true); |
EventTarget* effectiveTarget = |
getEffectiveTargetForPointerEvent(pointerEventTarget, pointerEvent->pointerId()); |
@@ -466,7 +454,7 @@ WebInputEventResult PointerEventManager::sendMousePointerEvent( |
} |
result = EventHandlingUtil::mergeEventResult(result, |
m_mouseEventManager->dispatchMouseEvent(mouseTarget, mouseEventType, |
- mouseEvent, nullptr, clickCount)); |
+ mouseEvent, nullptr)); |
} |
if (pointerEvent->type() == EventTypeNames::pointerup |
@@ -529,26 +517,24 @@ bool PointerEventManager::getPointerCaptureState(int pointerId, |
EventTarget* PointerEventManager::processCaptureAndPositionOfPointerEvent( |
PointerEvent* pointerEvent, |
EventTarget* hitTestTarget, |
- EventTarget* lastNodeUnderMouse, |
const PlatformMouseEvent& mouseEvent, |
- bool sendMouseEvent, bool setPointerPosition) |
+ bool sendMouseEvent) |
{ |
- if (setPointerPosition) { |
- processPendingPointerCapture(pointerEvent); |
+ processPendingPointerCapture(pointerEvent); |
- if (!RuntimeEnabledFeatures::pointerEventV1SpecCapturingEnabled()) { |
- PointerCapturingMap::const_iterator it = m_pointerCaptureTarget.find(pointerEvent->pointerId()); |
- if (EventTarget* pointercaptureTarget = (it != m_pointerCaptureTarget.end()) ? it->value : nullptr) |
- hitTestTarget = pointercaptureTarget; |
- } |
- |
- setNodeUnderPointer(pointerEvent, hitTestTarget); |
+ if (!RuntimeEnabledFeatures::pointerEventV1SpecCapturingEnabled()) { |
+ PointerCapturingMap::const_iterator it = m_pointerCaptureTarget.find(pointerEvent->pointerId()); |
+ if (EventTarget* pointercaptureTarget = (it != m_pointerCaptureTarget.end()) ? it->value : nullptr) |
+ hitTestTarget = pointercaptureTarget; |
} |
+ |
+ setNodeUnderPointer(pointerEvent, hitTestTarget); |
+ |
if (sendMouseEvent) { |
- // lastNodeUnderMouse is needed here because it is still stored in EventHandler. |
- m_mouseEventManager->sendBoundaryEvents(lastNodeUnderMouse, |
- hitTestTarget, mouseEvent); |
+ m_mouseEventManager->setNodeUnderMouse( |
+ hitTestTarget ? hitTestTarget->toNode() : nullptr, mouseEvent); |
} |
+ |
return hitTestTarget; |
} |