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>
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index 538f1c6..5c01c44 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());
}

/**