Set the DHTML drag image in the DHTML type check
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Feb 2017 20:09:04 +0000 (20:09 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Feb 2017 20:09:04 +0000 (20:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=168451

Reviewed by Wenson Hsieh.

* page/DragController.cpp:
(WebCore::DragController::startDrag):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@212457 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/page/DragController.cpp

index ace0f46..4b0233b 100644 (file)
@@ -1,5 +1,15 @@
 2017-02-16  Anders Carlsson  <andersca@apple.com>
 
+        Set the DHTML drag image in the DHTML type check
+        https://bugs.webkit.org/show_bug.cgi?id=168451
+
+        Reviewed by Wenson Hsieh.
+
+        * page/DragController.cpp:
+        (WebCore::DragController::startDrag):
+
+2017-02-16  Anders Carlsson  <andersca@apple.com>
+
         Begin removing EFL code from WebCore.
 
         Rubber-stamped by Alex Christensen.
index 0672825..bb59653 100644 (file)
@@ -798,19 +798,21 @@ bool DragController::startDrag(Frame& src, const DragState& state, DragOperation
     ASSERT(state.dataTransfer);
 
     DataTransfer& dataTransfer = *state.dataTransfer;
-    if (state.type == DragSourceActionDHTML)
+    if (state.type == DragSourceActionDHTML) {
         dragImage = DragImage { dataTransfer.createDragImage(dragImageOffset) };
-    if (state.type == DragSourceActionSelection || !imageURL.isEmpty() || !linkURL.isEmpty())
+        // We allow DHTML/JS to set the drag image, even if its a link, image or text we're dragging.
+        // This is in the spirit of the IE API, which allows overriding of pasteboard data and DragOp.
+        if (dragImage) {
+            dragLoc = dragLocForDHTMLDrag(mouseDraggedPoint, dragOrigin, dragImageOffset, !linkURL.isEmpty());
+            m_dragOffset = dragImageOffset;
+        }
+    }
+
+    if (state.type == DragSourceActionSelection || !imageURL.isEmpty() || !linkURL.isEmpty()) {
         // Selection, image, and link drags receive a default set of allowed drag operations that
         // follows from:
         // http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebHTMLView.mm?rev=48526#L3430
         m_sourceDragOperation = static_cast<DragOperation>(m_sourceDragOperation | DragOperationGeneric | DragOperationCopy);
-
-    // We allow DHTML/JS to set the drag image, even if its a link, image or text we're dragging.
-    // This is in the spirit of the IE API, which allows overriding of pasteboard data and DragOp.
-    if (dragImage) {
-        dragLoc = dragLocForDHTMLDrag(mouseDraggedPoint, dragOrigin, dragImageOffset, !linkURL.isEmpty());
-        m_dragOffset = dragImageOffset;
     }
 
     ASSERT(state.source);