sd/source/ui/dlg/navigatr.cxx |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

New commits:
commit 186c4cd328830c9b3a1769ea7c6a0738e019dae7
Author:     Jim Raykowski <[email protected]>
AuthorDate: Wed Apr 3 23:26:49 2024 -0800
Commit:     Jim Raykowski <[email protected]>
CommitDate: Fri Apr 5 17:44:18 2024 +0200

    SdNavigator: fix lcl_select_marked_object page selection
    
    ...which makes invalidation of SID_NAVIGATOR_PAGENAME in InitTreeLB
    unnecessary.
    
    Also rename lcl_select_marked_object lcl_select_marked_objects.
    
    Change-Id: I6afe0cc59808a476dcb1496e23dbb1b54ec570e3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165780
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <[email protected]>

diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index cdbfcac41382..8b955ba07035 100644
--- a/sd/source/ui/dlg/navigatr.cxx
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -50,6 +50,8 @@
 #include <vcl/commandevent.hxx>
 #include <comphelper/lok.hxx>
 
+#include <sdpage.hxx>
+
 /**
  * SdNavigatorWin - FloatingWindow
  */
@@ -136,7 +138,7 @@ SdNavigatorWin::~SdNavigatorWin()
     mxLbDocs.reset();
 }
 
-static void lcl_select_marked_object(const sd::ViewShell* pViewShell, 
SdPageObjsTLV* pTlbObjects)
+static void lcl_select_marked_objects(sd::ViewShell* pViewShell, 
SdPageObjsTLV* pTlbObjects)
 {
     if (const SdrView* pView = pViewShell->GetDrawView())
     {
@@ -148,7 +150,10 @@ static void lcl_select_marked_object(const sd::ViewShell* 
pViewShell, SdPageObjs
                 pTlbObjects->SelectEntry(rMarkedObject);
         }
         else
-            pTlbObjects->SelectEntry(pViewShell->GetName());
+        {
+            if (SdPage* pPage = pViewShell->GetActualPage())
+                pTlbObjects->SelectEntry(pPage->GetName());
+        }
     }
 }
 
@@ -185,7 +190,7 @@ void SdNavigatorWin::FreshTree( const SdDrawDocument* pDoc )
     }
 
     if (pViewShell)
-        lcl_select_marked_object(pViewShell, mxTlbObjects.get());
+        lcl_select_marked_objects(pViewShell, mxTlbObjects.get());
 }
 
 void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc )
@@ -251,11 +256,7 @@ void SdNavigatorWin::InitTreeLB( const SdDrawDocument* 
pDoc )
     }
 
     if (pViewShell)
-        lcl_select_marked_object(pViewShell, mxTlbObjects.get());
-
-    SfxViewFrame* pViewFrame = ( ( pViewShell && pViewShell->GetViewFrame() ) 
? pViewShell->GetViewFrame() : SfxViewFrame::Current() );
-    if( pViewFrame )
-        pViewFrame->GetBindings().Invalidate(SID_NAVIGATOR_PAGENAME, true, 
true);
+        lcl_select_marked_objects(pViewShell, mxTlbObjects.get());
 }
 
 /**
@@ -589,7 +590,7 @@ IMPL_LINK( SdNavigatorWin, ShapeFilterCallback, const 
OUString&, rIdent, void )
             {
                 pFrameView->SetIsNavigatorShowingAllShapes(bShowAllShapes);
             }
-            lcl_select_marked_object(pViewShell, mxTlbObjects.get());
+            lcl_select_marked_objects(pViewShell, mxTlbObjects.get());
         }
     }
 }

Reply via email to