diff options
author | Jim Raykowski <raykowj@gmail.com> | 2024-03-13 16:26:44 -0800 |
---|---|---|
committer | Jim Raykowski <raykowj@gmail.com> | 2024-04-10 18:48:39 +0200 |
commit | 64f1fbc4a66715aa616ffeff1eb612393fa9fba3 (patch) | |
tree | d4f5f3573d730c05efde093e66fc88110dbe3756 /sd/source | |
parent | 833e2ecf43708332b248689304a53b5c50af155d (diff) |
tdf#160190 Fix selection stops working in sidebar SdNavigator
after formula or OLE insert
Change-Id: I945a07fef137aa30afff91ac7c50f180e5f4c3d9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164797
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/ui/dlg/navigatr.cxx | 61 |
1 files changed, 29 insertions, 32 deletions
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx index 538f1c68b113..5c01c44b618d 100644 --- a/sd/source/ui/dlg/navigatr.cxx +++ b/sd/source/ui/dlg/navigatr.cxx @@ -164,20 +164,21 @@ void SdNavigatorWin::FreshTree( const SdDrawDocument* pDoc ) sd::DrawDocShell* pDocShell = pNonConstDoc->GetDocSh(); ::sd::ViewShell* pViewShell = pDocShell->GetViewShell(); + // tdf#160190 + if (!pViewShell) + return; + // tdf#139944 disable navigator in master mode - if (pViewShell) + if (const sd::DrawViewShell* pDrawViewShell = static_cast<::sd::DrawViewShell*>(pViewShell)) { - if (const sd::DrawViewShell* pDrawViewShell = static_cast<::sd::DrawViewShell*>(pViewShell)) + if (pDrawViewShell->GetEditMode() == EditMode::MasterPage) { - if (pDrawViewShell->GetEditMode() == EditMode::MasterPage) - { - m_xContainer->set_sensitive(false); - mxTlbObjects->clear(); - return; - } - else - m_xContainer->set_sensitive(true); + m_xContainer->set_sensitive(false); + mxTlbObjects->clear(); + return; } + else + m_xContainer->set_sensitive(true); } const OUString& aDocShName( pDocShell->GetName() ); @@ -189,8 +190,7 @@ void SdNavigatorWin::FreshTree( const SdDrawDocument* pDoc ) mxLbDocs->set_active_text(aDocShName); } - if (pViewShell) - lcl_select_marked_objects(pViewShell, mxTlbObjects.get()); + lcl_select_marked_objects(pViewShell, mxTlbObjects.get()); } void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc ) @@ -200,35 +200,33 @@ void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc ) OUString aDocShName( pDocShell->GetName() ); ::sd::ViewShell* pViewShell = pDocShell->GetViewShell(); + // tdf#160190 + if (!pViewShell) + return; + // tdf#139944 disable navigator in master mode - if (pViewShell) + if (const sd::DrawViewShell* pDrawViewShell = static_cast<::sd::DrawViewShell*>(pViewShell)) { - if (const sd::DrawViewShell* pDrawViewShell = static_cast<::sd::DrawViewShell*>(pViewShell)) + if (pDrawViewShell->GetEditMode() == EditMode::MasterPage) { - if (pDrawViewShell->GetEditMode() == EditMode::MasterPage) - { - m_xContainer->set_sensitive(false); - mxTlbObjects->clear(); - RefreshDocumentLB(); - return; - } - else - m_xContainer->set_sensitive(true); + m_xContainer->set_sensitive(false); + mxTlbObjects->clear(); + RefreshDocumentLB(); + return; } + else + m_xContainer->set_sensitive(true); } // Restore the 'ShowAllShapes' flag from the last time (in this session) // that the navigator was shown. - if (pViewShell != nullptr) - { - ::sd::FrameView* pFrameView = pViewShell->GetFrameView(); - if (pFrameView != nullptr) - mxTlbObjects->SetShowAllShapes(pFrameView->IsNavigatorShowingAllShapes(), false); - } + ::sd::FrameView* pFrameView = pViewShell->GetFrameView(); + if (pFrameView != nullptr) + mxTlbObjects->SetShowAllShapes(pFrameView->IsNavigatorShowingAllShapes(), false); // Disable the shape filter drop down menu when there is a running slide // show. - if (pViewShell!=nullptr && sd::SlideShow::IsRunning( pViewShell->GetViewShellBase() ) + if (sd::SlideShow::IsRunning( pViewShell->GetViewShellBase() ) && !sd::SlideShow::IsInteractiveSlideshow( &pViewShell->GetViewShellBase() ) ) // IASS mxToolbox->set_item_sensitive("shapes", false); else @@ -256,8 +254,7 @@ void SdNavigatorWin::InitTreeLB( const SdDrawDocument* pDoc ) } } - if (pViewShell) - lcl_select_marked_objects(pViewShell, mxTlbObjects.get()); + lcl_select_marked_objects(pViewShell, mxTlbObjects.get()); } /** |