| 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();
|
|
|