Chromium Code Reviews| 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 0d12edaba07fdd4422f52c88d0470b388c743200..c09cc7361269a89272fe82cd04be44fb2604aa6b 100644 |
| --- a/third_party/WebKit/Source/core/input/EventHandler.cpp |
| +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp |
| @@ -1404,18 +1404,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()); |
| @@ -1505,9 +1508,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( |
|
mustaq
2016/08/02 21:47:12
s/retVal/eventResult?
Navid Zolghadr
2016/08/03 14:44:08
Done.
|
| m_nodeUnderMouse, mouseEventType, clickCount, mouseEvent, nullptr, |
| - lastNodeUnderMouse); |
| + lastNodeUnderMouse, &newNodeUnderMouse); |
| + m_nodeUnderMouse = newNodeUnderMouse; |
| + return retVal; |
| } |
| void EventHandler::setClickNode(Node* node) |