From 6e83e7778d26f35d79ce573b6ee3ab149f7b6179 Mon Sep 17 00:00:00 2001 From: Jim Raykowski Date: Sun, 22 Mar 2020 20:54:24 -0800 Subject: GtkInstanceTreeView: Expand to path before setting cursor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expands the parent of a child, if needed, so the child can be selected. Change-Id: If4b7322a7024065e5e96ed2ed43289c5ae7c5f5d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90899 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- vcl/unx/gtk3/gtk3gtkinst.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 02055e04b15b..46fa3b9cf03a 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -10144,6 +10144,14 @@ public: disable_notify_events(); const GtkInstanceTreeIter& rGtkIter = static_cast(rIter); GtkTreeModel *pModel = GTK_TREE_MODEL(m_pTreeStore); + GtkTreeIter Iter; + if (gtk_tree_model_iter_parent(pModel, &Iter, const_cast(&rGtkIter.iter))) + { + GtkTreePath* path = gtk_tree_model_get_path(pModel, &Iter); + if (!gtk_tree_view_row_expanded(m_pTreeView, path)) + gtk_tree_view_expand_to_path(m_pTreeView, path); + gtk_tree_path_free(path); + } GtkTreePath* path = gtk_tree_model_get_path(pModel, const_cast(&rGtkIter.iter)); gtk_tree_view_scroll_to_cell(m_pTreeView, path, nullptr, false, 0, 0); gtk_tree_view_set_cursor(m_pTreeView, path, nullptr, false); -- cgit