[Libreoffice-commits] core.git: vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Fri Mar 13 08:20:27 UTC 2020
vcl/unx/gtk3/gtk3gtkinst.cxx | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
New commits:
commit 7ba168173addd286fef11c0d5634fb3a1eb73fee
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Mar 12 20:22:56 2020 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Mar 13 09:19:54 2020 +0100
skip on-demand entries on iter_next/iter_previous
Change-Id: I5a12cae948893ea4e221f335cc29acc663e1ce29
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90442
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index c9867a731903..fefc63bb1d1f 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -10139,10 +10139,20 @@ public:
{
GtkInstanceTreeIter& rGtkIter = static_cast<GtkInstanceTreeIter&>(rIter);
GtkTreeModel *pModel = GTK_TREE_MODEL(m_pTreeStore);
+ GtkTreeIter tmp;
GtkTreeIter iter = rGtkIter.iter;
- if (iter_children(rGtkIter))
+
+ bool ret = gtk_tree_model_iter_children(pModel, &tmp, &iter);
+ rGtkIter.iter = tmp;
+ if (ret)
+ {
+ //on-demand dummy entry doesn't count
+ if (get_text(rGtkIter, -1) == "<dummy>")
+ return iter_next(rGtkIter);
return true;
- GtkTreeIter tmp = iter;
+ }
+
+ tmp = iter;
if (gtk_tree_model_iter_next(pModel, &tmp))
{
rGtkIter.iter = tmp;
@@ -10163,6 +10173,7 @@ public:
virtual bool iter_previous(weld::TreeIter& rIter) const override
{
+ bool ret = false;
GtkInstanceTreeIter& rGtkIter = static_cast<GtkInstanceTreeIter&>(rIter);
GtkTreeModel *pModel = GTK_TREE_MODEL(m_pTreeStore);
GtkTreeIter iter = rGtkIter.iter;
@@ -10175,14 +10186,26 @@ public:
rGtkIter.iter = tmp;
else
last_child(pModel, &rGtkIter.iter, &tmp, nChildren);
- return true;
+ ret = true;
}
- // Move up level
- if (gtk_tree_model_iter_parent(pModel, &tmp, &iter))
+ else
{
- rGtkIter.iter = tmp;
+ // Move up level
+ if (gtk_tree_model_iter_parent(pModel, &tmp, &iter))
+ {
+ rGtkIter.iter = tmp;
+ ret = true;
+ }
+ }
+
+ if (ret)
+ {
+ //on-demand dummy entry doesn't count
+ if (get_text(rGtkIter, -1) == "<dummy>")
+ return iter_previous(rGtkIter);
return true;
}
+
return false;
}
More information about the Libreoffice-commits
mailing list