summaryrefslogtreecommitdiff
path: root/mozilla-1464808.patch
diff options
context:
space:
mode:
authorMartin Stransky <stransky@redhat.com>2018-05-29 14:37:47 +0200
committerMartin Stransky <stransky@redhat.com>2018-05-29 14:37:47 +0200
commitc354b7e1473dd5def9c5ff11e4ed2912aac65abf (patch)
treed4b8022d1c4d8ea9d1c5f22a46fbcc57001e823b /mozilla-1464808.patch
parent Added fix for mozbz#1462640 - Sandbox disables eglGetDisplay() call on Wayla... (diff)
downloadlibrewolf-fedora-ff-c354b7e1473dd5def9c5ff11e4ed2912aac65abf.tar.gz
librewolf-fedora-ff-c354b7e1473dd5def9c5ff11e4ed2912aac65abf.tar.bz2
librewolf-fedora-ff-c354b7e1473dd5def9c5ff11e4ed2912aac65abf.zip
Added fix for mozbz#1464808 - Set default D&D action to move on Wayland
Diffstat (limited to 'mozilla-1464808.patch')
-rw-r--r--mozilla-1464808.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/mozilla-1464808.patch b/mozilla-1464808.patch
new file mode 100644
index 0000000..6cb6bde
--- /dev/null
+++ b/mozilla-1464808.patch
@@ -0,0 +1,31 @@
+diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp
+--- a/widget/gtk/nsClipboardWayland.cpp
++++ b/widget/gtk/nsClipboardWayland.cpp
+@@ -201,21 +201,25 @@ WaylandDataOffer::DragOfferAccept(const
+ }
+
+ /* We follow logic of gdk_wayland_drag_context_commit_status()/gdkdnd-wayland.c
+ * here.
+ */
+ void
+ WaylandDataOffer::SetDragStatus(GdkDragAction aAction, uint32_t aTime)
+ {
+- uint32_t dnd_actions = gdk_to_wl_actions(aAction);
+ uint32_t all_actions = WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY |
+ WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE;
+
+- wl_data_offer_set_actions(mWaylandDataOffer, all_actions, dnd_actions);
++ /* Default Firefox D&D action is move so set it here as a preferred one.
++ Actual D&D action will be select by Wayland compositor and reported
++ at data_offer_action() callback.
++ */
++ wl_data_offer_set_actions(mWaylandDataOffer, all_actions,
++ WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE);
+
+ /* Workaround Wayland D&D architecture here. To get the data_device_drop()
+ signal (which routes to nsDragService::GetData() call) we need to
+ accept at least one mime type before data_device_leave().
+
+ Real wl_data_offer_accept() for actualy requested data mime type is
+ called from nsDragService::GetData().
+ */
bgstack15