[Libreoffice-commits] core.git: Branch 'libreoffice-6-3' - vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Wed Nov 13 05:53:18 UTC 2019
vcl/unx/gtk3/gtk3gtkinst.cxx | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
New commits:
commit 881d176ec8baa2f00aa78236912db5fe346445f7
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Nov 4 11:28:51 2019 +0000
Commit: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Wed Nov 13 06:52:43 2019 +0100
improve pivot table dnd highlighting
if we're dropping into a treeview that is in list mode then use
GTK_TREE_VIEW_DROP_AFTER instead when GTK_TREE_VIEW_DROP_INTO_OR_AFTER is
suggested.
Change-Id: I446e70a1e10a2e6e50bd7a098c54a91bcfa6abb9
improve pivot table dnd highlighting
unhighlight row when widget is unhighlighted and only
highlight a row if the widget is highlighted
Change-Id: I415207b4b263c5125f52abd57efe3543e2411b36
Reviewed-on: https://gerrit.libreoffice.org/82001
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 4162fc263a62..572dee1f08b9 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -6469,6 +6469,7 @@ private:
std::vector<int> m_aViewColToModelCol;
std::vector<int> m_aModelColToViewCol;
bool m_bWorkAroundBadDragRegion;
+ bool m_bInDrag;
gint m_nTextCol;
gint m_nImageCol;
gint m_nExpanderImageCol;
@@ -6855,6 +6856,7 @@ public:
, m_pTreeView(pTreeView)
, m_pTreeStore(GTK_TREE_STORE(gtk_tree_view_get_model(m_pTreeView)))
, m_bWorkAroundBadDragRegion(false)
+ , m_bInDrag(false)
, m_nTextCol(-1)
, m_nImageCol(-1)
, m_nExpanderImageCol(-1)
@@ -8114,7 +8116,7 @@ public:
gtkpos == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
{
ret = false;
- pos = gtkpos;
+ pos = bAsTree ? gtkpos : GTK_TREE_VIEW_DROP_AFTER;
}
}
@@ -8124,8 +8126,11 @@ public:
gtk_tree_model_get_iter(pModel, &rGtkIter.iter, path);
}
- // highlight the row
- gtk_tree_view_set_drag_dest_row(m_pTreeView, path, pos);
+ if (m_bInDrag)
+ {
+ // highlight the row
+ gtk_tree_view_set_drag_dest_row(m_pTreeView, path, pos);
+ }
assert(path);
gtk_tree_path_free(path);
@@ -8170,6 +8175,7 @@ public:
// of the treeview's highlight effort
virtual void drag_started() override
{
+ m_bInDrag = true;
GtkWidget* pWidget = GTK_WIDGET(m_pTreeView);
GtkWidget* pParent = gtk_widget_get_parent(pWidget);
if (GTK_IS_SCROLLED_WINDOW(pParent))
@@ -8182,6 +8188,7 @@ public:
virtual void drag_ended() override
{
+ m_bInDrag = false;
if (m_bWorkAroundBadDragRegion)
{
GtkWidget* pWidget = GTK_WIDGET(m_pTreeView);
@@ -8189,6 +8196,8 @@ public:
gtk_drag_unhighlight(pParent);
m_bWorkAroundBadDragRegion = false;
}
+ // unhighlight the row
+ gtk_tree_view_set_drag_dest_row(m_pTreeView, nullptr, GTK_TREE_VIEW_DROP_BEFORE);
}
virtual ~GtkInstanceTreeView() override
More information about the Libreoffice-commits
mailing list