| 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 d6bb3c72044dccffc99a3d96f7d5c24f33b11587..9a85efee9cbceded45b78170ead0c4e6633d1f2d 100644
|
| --- a/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| @@ -309,7 +309,7 @@ void EventHandler::nodeWillBeRemoved(Node& nodeToBeRemoved)
|
|
|
| void EventHandler::immediatelyProcessPendingPointerCapture(int pointerId)
|
| {
|
| - m_pointerEventManager.immediatelyProcessPendingPointerCapture(pointerId);
|
| + m_pointerEventManager.processPendingPointerCapture(pointerId);
|
| }
|
|
|
| WebInputEventResult EventHandler::handleMousePressEvent(const MouseEventWithHitTestResults& event)
|
| @@ -1408,18 +1408,21 @@ MouseEventWithHitTestResults EventHandler::prepareMouseEvent(const HitTestReques
|
| Node* EventHandler::updateMouseEventTargetNode(Node* targetNode,
|
| const PlatformMouseEvent& mouseEvent)
|
| {
|
| - Node* result = targetNode;
|
| + Node* newNodeUnderMouse = targetNode;
|
|
|
| // If we're capturing, we always go right to that node.
|
| - if (m_capturingMouseEventsNode) {
|
| - result = m_capturingMouseEventsNode.get();
|
| + if (EventTarget* mousePointerCapturingNode = m_pointerEventManager.getMouseCapturingNode()) {
|
| + newNodeUnderMouse = mousePointerCapturingNode->toNode();
|
| + DCHECK(newNodeUnderMouse);
|
| + } else if (m_capturingMouseEventsNode) {
|
| + newNodeUnderMouse = m_capturingMouseEventsNode.get();
|
| } else {
|
| // If the target node is a text node, dispatch on the parent node - rdar://4196646
|
| - if (result && result->isTextNode())
|
| - result = FlatTreeTraversal::parent(*result);
|
| + if (newNodeUnderMouse && newNodeUnderMouse->isTextNode())
|
| + newNodeUnderMouse = FlatTreeTraversal::parent(*newNodeUnderMouse);
|
| }
|
| Node* lastNodeUnderMouse = m_nodeUnderMouse;
|
| - m_nodeUnderMouse = result;
|
| + m_nodeUnderMouse = newNodeUnderMouse;
|
|
|
| PaintLayer* layerForLastNode = layerForNode(lastNodeUnderMouse);
|
| PaintLayer* layerForNodeUnderMouse = layerForNode(m_nodeUnderMouse.get());
|
| @@ -1509,9 +1512,12 @@ WebInputEventResult EventHandler::updatePointerTargetAndDispatchEvents(const Ato
|
| if (mouseEvent.getSyntheticEventType() == PlatformMouseEvent::FromTouch)
|
| return dispatchMouseEvent(mouseEventType, m_nodeUnderMouse, clickCount, mouseEvent);
|
|
|
| - return m_pointerEventManager.sendMousePointerEvent(
|
| + Node* newNodeUnderMouse = nullptr;
|
| + const auto& retVal = m_pointerEventManager.sendMousePointerEvent(
|
| m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr,
|
| - lastNodeUnderMouse);
|
| + lastNodeUnderMouse, &newNodeUnderMouse);
|
| + m_nodeUnderMouse = newNodeUnderMouse;
|
| + return retVal;
|
| }
|
|
|
| void EventHandler::setClickNode(Node* node)
|
|
|