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

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

Issue 2469863003: Delegate dragend to the correct frame's EventHandler. (Closed)
Patch Set: Applied dcheng's advice. 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..f86d76dd2853df7dbce02456d9d7ca79fc84f896 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -1967,7 +1967,19 @@ void EventHandler::defaultKeyboardEventHandler(KeyboardEvent* event) {
void EventHandler::dragSourceEndedAt(const PlatformMouseEvent& event,
DragOperation operation) {
- m_mouseEventManager->dragSourceEndedAt(event, 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);
+ } else {
+ m_mouseEventManager->dragSourceEndedAt(event, operation);
+ }
}
void EventHandler::updateDragStateAfterEditDragIfNeeded(

Powered by Google App Engine
This is Rietveld 408576698