Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2471843005: Delegate dragend to the correct frame's EventHandler. (Closed)
Patch Set: Addressed some of the feedback. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 a40a5bc065dff8cd721b95a119fcf4bc36e0dad3..b130bc061af6c82b071fda464e8c6e48f032897e 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -1967,6 +1967,20 @@ void EventHandler::defaultKeyboardEventHandler(KeyboardEvent* event) {
void EventHandler::dragSourceEndedAt(const PlatformMouseEvent& event,
DragOperation operation) {
+ // Asides from routing the event to the correct frame, the hit test is also an
+ // opportunity for Layer to update the :hover and :active pseudoclasses.
+ HitTestRequest request(HitTestRequest::Release);
+ MouseEventWithHitTestResults mev =
+ EventHandlingUtil::performMouseEventHitTest(m_frame, request, event);
+
+ LocalFrame* targetFrame;
+ if (targetIsFrame(mev.innerNode(), targetFrame)) {
+ if (targetFrame) {
+ targetFrame->eventHandler().dragSourceEndedAt(event, operation);
+ return;
+ }
+ }
+
m_mouseEventManager->dragSourceEndedAt(event, operation);
}

Powered by Google App Engine
This is Rietveld 408576698