sw/source/uibase/utlui/content.cxx |   22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

New commits:
commit 60d51a43d4fb047ae814ef5296ffb8031080262a
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Mon Nov 1 15:18:49 2021 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Tue Nov 2 17:08:15 2021 +0100

    SwNavigator: Disallow going to content when content is not visible
    
    Change-Id: I3644956866b562118fcb4610bce0b977cab29dce
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124576
    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 5bfd2ac956bd..eca4fd28b4b3 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -1605,7 +1605,8 @@ IMPL_LINK(SwContentTree, CommandHdl, const CommandEvent&, 
rCEvt, bool)
         xEntry.reset();
 
     bool bRemoveGotoEntry = false;
-    if (State::HIDDEN == m_eState || !xEntry || !lcl_IsContent(*xEntry, 
*m_xTreeView))
+    if (State::HIDDEN == m_eState || !xEntry || !lcl_IsContent(*xEntry, 
*m_xTreeView) ||
+            
reinterpret_cast<SwContent*>(m_xTreeView->get_id(*xEntry).toInt64())->IsInvisible())
         bRemoveGotoEntry = true;
 
     bool bRemovePostItEntries = true;
@@ -2230,17 +2231,20 @@ IMPL_LINK_NOARG(SwContentTree, ContentDoubleClickHdl, 
weld::TreeView&, bool)
         }
         else if (!lcl_IsContentType(*xEntry, *m_xTreeView) && (State::HIDDEN 
!= m_eState))
         {
-            if (State::CONSTANT == m_eState)
-            {
-                m_pActiveShell->GetView().GetViewFrame()->GetWindow().ToTop();
-            }
-            //Jump to content type:
             
assert(dynamic_cast<SwContent*>(reinterpret_cast<SwTypeNumber*>(m_xTreeView->get_id(*xEntry).toInt64())));
             SwContent* pCnt = 
reinterpret_cast<SwContent*>(m_xTreeView->get_id(*xEntry).toInt64());
             assert(pCnt && "no UserData");
-            GotoContent(pCnt);
-            // fdo#36308 don't expand outlines on double-click
-            bConsumed = pCnt->GetParent()->GetType() == ContentTypeId::OUTLINE;
+            if (pCnt && !pCnt->IsInvisible())
+            {
+                if (State::CONSTANT == m_eState)
+                {
+                    
m_pActiveShell->GetView().GetViewFrame()->GetWindow().ToTop();
+                }
+                //Jump to content type:
+                GotoContent(pCnt);
+                // fdo#36308 don't expand outlines on double-click
+                bConsumed = pCnt->GetParent()->GetType() == 
ContentTypeId::OUTLINE;
+            }
         }
     }
 

Reply via email to