| 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 fd18e7773acb663f5283364ed8acf871ec2c1f9e..05d04fa5da29ccae25029bbd7e6dd4a5f2833f99 100644
|
| --- a/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| +++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
|
| @@ -1270,8 +1270,16 @@ bool EventHandler::handleMouseReleaseEvent(const PlatformMouseEvent& mouseEvent)
|
| // Both m_clickNode and mev.innerNode() don't need to be updated
|
| // because commonAncestor() will exit early if their documents are different.
|
| m_clickNode->updateDistribution();
|
| - if (Node* clickTargetNode = mev.innerNode()->commonAncestor(*m_clickNode, parentForClickEvent))
|
| - swallowClickEvent = !dispatchMouseEvent(EventTypeNames::click, clickTargetNode, m_clickCount, mouseEvent);
|
| + if (Node* clickTargetNode = mev.innerNode()->commonAncestor(
|
| + *m_clickNode, parentForClickEvent)) {
|
| +
|
| + // Dispatch mouseup directly w/o calling updateMouseEventTargetNode
|
| + // because the mouseup dispatch above has already updated it
|
| + // correctly. Moreover, clickTargetNode is different from
|
| + // mev.innerNode at drag-release.
|
| + clickTargetNode->dispatchMouseEvent(mouseEvent,
|
| + EventTypeNames::click, m_clickCount);
|
| + }
|
| }
|
|
|
| if (m_resizeScrollableArea) {
|
|
|