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 7e196a2cdbc7f9f2896c3c3e9b1ffa099a7b9fee..1a1c75a1de82d8ec76276e36b7fd86e931a8a389 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,9 +958,8 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent( |
HitTestRequest request(hit_type); |
MouseEventWithHitTestResults mev = |
EventHandlingUtil::PerformMouseEventHitTest(frame_, request, mouse_event); |
- Node* release_node = (mev.InnerNode() && mev.InnerNode()->IsTextNode()) |
- ? FlatTreeTraversal::Parent(*mev.InnerNode()) |
- : mev.InnerNode(); |
+ Element* mouse_release_target = |
+ EventHandlingUtil::ParentElementIfNeeded(mev.InnerNode()); |
LocalFrame* subframe = |
capturing_mouse_events_node_.Get() |
? SubframeForTargetNode(capturing_mouse_events_node_.Get()) |
@@ -995,7 +992,9 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent( |
mev.Event(), Vector<WebMouseEvent>()); |
WebInputEventResult click_event_result = |
- mouse_event_manager_->DispatchMouseClickIfNeeded(mev, release_node); |
+ mouse_release_target ? mouse_event_manager_->DispatchMouseClickIfNeeded( |
+ mev, *mouse_release_target) |
+ : WebInputEventResult::kNotHandled; |
scroll_manager_->ClearResizeScrollableArea(false); |