summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-10-12 20:21:37 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-10-13 11:25:40 +0200
commit97b7b6030a6cf5b28ae0c1f61f7f55167b82dab6 (patch)
tree61199fde509892bb18ae0424480585a8cc36e61f
parent2cb54449b4fc9e908aae0a44f808d82b8e83acfc (diff)
with a DND_ACTION_NONE drag action and zero target-formats disable drag
so we can support dynamically disable/enable dnd Change-Id: Icfec79c332ef073e04be5a57747e849b27098732 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104221 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index de24e8c98a75..1c67472bf8c8 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -2354,7 +2354,10 @@ private:
virtual void drag_source_set(const std::vector<GtkTargetEntry>& rGtkTargets, GdkDragAction eDragAction)
{
- gtk_drag_source_set(m_pWidget, GDK_BUTTON1_MASK, rGtkTargets.data(), rGtkTargets.size(), eDragAction);
+ if (rGtkTargets.empty() && !eDragAction)
+ gtk_drag_source_unset(m_pWidget);
+ else
+ gtk_drag_source_set(m_pWidget, GDK_BUTTON1_MASK, rGtkTargets.data(), rGtkTargets.size(), eDragAction);
}
void do_set_background(const Color& rColor)
@@ -11480,7 +11483,10 @@ public:
virtual void drag_source_set(const std::vector<GtkTargetEntry>& rGtkTargets, GdkDragAction eDragAction) override
{
- gtk_tree_view_enable_model_drag_source(m_pTreeView, GDK_BUTTON1_MASK, rGtkTargets.data(), rGtkTargets.size(), eDragAction);
+ if (rGtkTargets.empty() && !eDragAction)
+ gtk_tree_view_unset_rows_drag_source(m_pTreeView);
+ else
+ gtk_tree_view_enable_model_drag_source(m_pTreeView, GDK_BUTTON1_MASK, rGtkTargets.data(), rGtkTargets.size(), eDragAction);
}
virtual void set_selection_mode(SelectionMode eMode) override