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 4f8163d9dd5ffca42e4a9213fea3be8962e893ca..f64a9ea13886fd92f0a35d57b6c0f2969fc05c8e 100644 |
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp |
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp |
@@ -652,10 +652,8 @@ WebInputEventResult EventHandler::HandleMousePressEvent( |
} |
mouse_event_manager_->SetClickCount(mouse_event.click_count); |
- mouse_event_manager_->SetClickNode( |
- mev.InnerNode()->IsTextNode() |
- ? FlatTreeTraversal::Parent(*mev.InnerNode()) |
- : mev.InnerNode()); |
+ mouse_event_manager_->SetClickElement( |
+ EventHandlingUtil::ParentElementIfNeeded(mev.InnerNode())); |
if (!mouse_event.FromTouch()) |
frame_->Selection().SetCaretBlinkingSuspended(true); |
@@ -960,6 +958,8 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent( |
HitTestRequest request(hit_type); |
MouseEventWithHitTestResults mev = |
EventHandlingUtil::PerformMouseEventHitTest(frame_, request, mouse_event); |
+ Element* mouse_release_target = |
+ EventHandlingUtil::ParentElementIfNeeded(mev.InnerNode()); |
LocalFrame* subframe = |
capturing_mouse_events_node_.Get() |
? SubframeForTargetNode(capturing_mouse_events_node_.Get()) |
@@ -992,7 +992,9 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent( |
mev.Event(), Vector<WebMouseEvent>()); |
WebInputEventResult click_event_result = |
- mouse_event_manager_->DispatchMouseClickIfNeeded(mev); |
+ mouse_release_target ? mouse_event_manager_->DispatchMouseClickIfNeeded( |
+ mev, *mouse_release_target) |
+ : WebInputEventResult::kNotHandled; |
scroll_manager_->ClearResizeScrollableArea(false); |