sw/source/uibase/utlui/content.cxx | 12 ++++++++++++ vcl/unx/gtk3/gtkinst.cxx | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-)
New commits: commit 4d1a9a76a1dbef9d177e55d6fc9b294a6dafe33f Author: Jim Raykowski <rayk...@gmail.com> AuthorDate: Wed Jun 22 17:53:10 2022 -0800 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Jun 27 17:51:15 2022 +0200 tdf#149279 SwNavigator enhancement to show at least two headings above tracked heading For gtk3, treeview scroll_to_row to a visible collapsed row makes the row expanded. The sal version does not. To make the behavior consistent, the patch removes the call to gtk_tree_view_expand_to_path which causes a visible collapsed row to expand. Change-Id: I29e67535ab23aa1952b4ff97c1b81276794b8036 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136436 Tested-by: Jenkins Reviewed-by: Jim Raykowski <rayk...@gmail.com> (cherry picked from commit 8e8e0aefc998adba749a93cacc4660d859fba675) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136462 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index de9275d3d1b9..d23fbe63b849 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -3897,6 +3897,18 @@ void SwContentTree::UpdateTracking() // unselect all entries, make pEntry visible, and select m_xTreeView->set_cursor(rEntry); Select(); + + // tdf#149279 show at least two outline entries before the set cursor entry + std::unique_ptr<weld::TreeIter> xIter(m_xTreeView->make_iterator(&rEntry)); + for (int i = 0; i < 2; i++) + { + if (m_xTreeView->get_iter_depth(*xIter) == 0) + break; + m_xTreeView->iter_previous(*xIter); + while (!weld::IsEntryVisible(*m_xTreeView, *xIter)) + m_xTreeView->iter_parent(*xIter); + } + m_xTreeView->scroll_to_row(*xIter); } bRet = true; } diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index a49e32dc8cfa..ceab7160c86b 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -14792,7 +14792,6 @@ public: assert(gtk_tree_view_get_model(m_pTreeView) && "don't select when frozen, select after thaw. Note selection doesn't survive a freeze"); disable_notify_events(); GtkTreePath* path = gtk_tree_path_new_from_indices(pos, -1); - gtk_tree_view_expand_to_path(m_pTreeView, path); gtk_tree_view_scroll_to_cell(m_pTreeView, path, nullptr, false, 0, 0); gtk_tree_path_free(path); enable_notify_events(); @@ -15470,7 +15469,6 @@ public: disable_notify_events(); const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); GtkTreePath* path = gtk_tree_model_get_path(m_pTreeModel, const_cast<GtkTreeIter*>(&rGtkIter.iter)); - gtk_tree_view_expand_to_path(m_pTreeView, path); gtk_tree_view_scroll_to_cell(m_pTreeView, path, nullptr, false, 0, 0); gtk_tree_path_free(path); enable_notify_events();