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

New commits:
commit f7102dafc44a66b8ffb7b8d516fe1720fc45f8fe
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Wed Apr 13 18:44:19 2022 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Sun Apr 17 05:19:20 2022 +0200

    SwNavigator content tracking: clear selections and entry cursor
    
    when entry is not found in content tree
    
    This happens when the document cursor is positioned on table of content
    hyperlinks.
    
    Change-Id: I717b2dae31780b26cf5450fbea0c8f461659770c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132989
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <rayk...@gmail.com>

diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index 64a710b6f3f3..05e9eabfbdca 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -3257,7 +3257,11 @@ static void 
lcl_SelectByContentTypeAndAddress(SwContentTree* pThis, weld::TreeVi
                                               ContentTypeId nType, const void* 
ptr)
 {
     if (!ptr)
+    {
+        rContentTree.set_cursor(-1);
+        pThis->Select();
         return;
+    }
 
     // find content type entry
     std::unique_ptr<weld::TreeIter> xIter(rContentTree.make_iterator());
@@ -3273,7 +3277,11 @@ static void 
lcl_SelectByContentTypeAndAddress(SwContentTree* pThis, weld::TreeVi
     }
 
     if (!bFoundEntry)
+    {
+        rContentTree.set_cursor(-1);
+        pThis->Select();
         return;
+    }
 
     // assure content type entry is expanded
     rContentTree.expand_row(*xIter);
@@ -3332,6 +3340,10 @@ static void 
lcl_SelectByContentTypeAndAddress(SwContentTree* pThis, weld::TreeVi
             return;
         }
     }
+
+    rContentTree.set_cursor(-1);
+    pThis->Select();
+    return;
 }
 
 static void lcl_SelectByContentTypeAndName(SwContentTree* pThis, 
weld::TreeView& rContentTree,

Reply via email to