sw/source/uibase/utlui/glbltree.cxx |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 2d25e03bb19e033be953173ccca3f86be5cf2f9d
Author:     Caolán McNamara <[email protected]>
AuthorDate: Sat Feb 21 16:32:41 2026 +0000
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Sun Feb 22 10:35:36 2026 +0100

    Resolves: tdf#166902 ensure right clicked entry is selected
    
    Change-Id: Icee19b56e750ce525674a44a109f0fd52dab509a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199952
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>
    Tested-by: Jenkins

diff --git a/sw/source/uibase/utlui/glbltree.cxx 
b/sw/source/uibase/utlui/glbltree.cxx
index ab9aa234ccfc..27f070aa154a 100644
--- a/sw/source/uibase/utlui/glbltree.cxx
+++ b/sw/source/uibase/utlui/glbltree.cxx
@@ -272,6 +272,16 @@ IMPL_LINK(SwGlobalTree, CommandHdl, const CommandEvent&, 
rCEvt, bool)
     bool bPop = false;
     if (m_pActiveShell && 
!m_pActiveShell->GetView().GetDocShell()->IsReadOnly())
     {
+        // tdf#166902 ensure right clicked entry is selected
+        if (std::unique_ptr<weld::TreeIter> 
xEntry(m_xTreeView->make_iterator());
+                rCEvt.IsMouseEvent() && m_xTreeView->get_dest_row_at_pos(
+                    rCEvt.GetMousePosPixel(), xEntry.get(), false))
+        {
+            // if clicked entry is not currently selected then clear 
selections and select it
+            if (!m_xTreeView->is_selected(*xEntry))
+                m_xTreeView->set_cursor(*xEntry);
+        }
+
         std::unique_ptr<weld::Builder> 
xBuilder(Application::CreateBuilder(m_xTreeView.get(), 
u"modules/swriter/ui/mastercontextmenu.ui"_ustr));
         std::unique_ptr<weld::Menu> xPopup = 
xBuilder->weld_menu(u"navmenu"_ustr);
         std::unique_ptr<weld::Menu> xSubPopup = 
xBuilder->weld_menu(u"insertmenu"_ustr);

Reply via email to