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

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

Issue 1232003009: Implement DragEvent and move MouseEvent.dataTransfer (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase and add layoutTest Created 5 years, 5 months 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: Source/core/input/EventHandler.cpp
diff --git a/Source/core/input/EventHandler.cpp b/Source/core/input/EventHandler.cpp
index 04ea9c7ca66c2dff45ccfb07649c78b4a48899a2..91e3475d2a44e365d4d8177f4ab99fd5b85e2c23 100644
--- a/Source/core/input/EventHandler.cpp
+++ b/Source/core/input/EventHandler.cpp
@@ -40,6 +40,7 @@
#include "core/editing/Editor.h"
#include "core/editing/FrameSelection.h"
#include "core/editing/SelectionController.h"
+#include "core/events/DragEvent.h"
#include "core/events/EventPath.h"
#include "core/events/KeyboardEvent.h"
#include "core/events/MouseEvent.h"
@@ -1278,12 +1279,26 @@ bool EventHandler::dispatchDragEvent(const AtomicString& eventType, Node* dragTa
if (!view)
return false;
- RefPtrWillBeRawPtr<MouseEvent> me = MouseEvent::create(eventType,
- true, true, m_frame->document()->domWindow(),
- 0, event.globalPosition().x(), event.globalPosition().y(), event.position().x(), event.position().y(),
- event.movementDelta().x(), event.movementDelta().y(),
- event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(),
- 0, MouseEvent::platformModifiersToButtons(event.modifiers()), nullptr, dataTransfer, false, event.syntheticEventType(), event.timestamp());
+ DragEventInit dragEventInit;
+ dragEventInit.setBubbles(true);
+ dragEventInit.setCancelable(true);
+ dragEventInit.setView(m_frame->document()->domWindow());
+ dragEventInit.setDetail(0);
+ dragEventInit.setScreenX(event.globalPosition().x());
+ dragEventInit.setScreenY(event.globalPosition().y());
+ dragEventInit.setMovementX(event.movementDelta().x());
+ dragEventInit.setMovementY(event.movementDelta().y());
+
+ dragEventInit.setCtrlKey(event.ctrlKey());
+ dragEventInit.setShiftKey(event.shiftKey());
+ dragEventInit.setAltKey(event.altKey());
+ dragEventInit.setMetaKey(event.metaKey());
+
+ dragEventInit.setButton(0);
+ dragEventInit.setButtons(MouseEvent::platformModifiersToButtons(event.modifiers()));
+ dragEventInit.setDataTransfer(dataTransfer);
+
+ RefPtrWillBeRawPtr<DragEvent> me = DragEvent::create(eventType, dragEventInit);
dragTarget->dispatchEvent(me.get());
return me->defaultPrevented();

Powered by Google App Engine
This is Rietveld 408576698