diff --git a/sd/source/ui/app/sddll2.cxx b/sd/source/ui/app/sddll2.cxx index 78c78ea26b17..a945bfbd99a1 100644 --- a/sd/source/ui/app/sddll2.cxx +++ b/sd/source/ui/app/sddll2.cxx @@ -126,7 +126,7 @@ void SdDLL::RegisterControllers() ::avmedia::MediaPlayer::RegisterChildWindow(0, pMod); ::sd::LeftPaneImpressChildWindow::RegisterChildWindow(0, pMod); ::sd::LeftPaneDrawChildWindow::RegisterChildWindow(0, pMod); - ::sd::ToolPanelChildWindow::RegisterChildWindow(0, pMod); + ::sd::ToolPanelChildWindow::RegisterChildWindowIfEnabled(0, pMod); ::sfx2::sidebar::SidebarChildWindow::RegisterChildWindowIfEnabled(0, pMod); SvxFillToolBoxControl::RegisterControl(0, pMod); diff --git a/sd/source/ui/dlg/PaneChildWindows.cxx b/sd/source/ui/dlg/PaneChildWindows.cxx index df7997401228..30e5b2fac961 100644 --- a/sd/source/ui/dlg/PaneChildWindows.cxx +++ b/sd/source/ui/dlg/PaneChildWindows.cxx @@ -215,6 +215,14 @@ void ToolPanelChildWindow::ActivateToolPanel( const OUString& i_rPanelURL ) } } +void ToolPanelChildWindow::RegisterChildWindowIfEnabled (sal_Bool bVisible, + SfxModule *pMod, + sal_uInt16 nFlags) +{ + if ( ! SfxViewFrame::IsSidebarEnabled() ) + RegisterChildWindow( bVisible, pMod, nFlags ); +} + } // end of namespace ::sd /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/inc/PaneChildWindows.hxx b/sd/source/ui/inc/PaneChildWindows.hxx index b2f63d904733..dc93ae0f536d 100644 --- a/sd/source/ui/inc/PaneChildWindows.hxx +++ b/sd/source/ui/inc/PaneChildWindows.hxx @@ -70,6 +70,8 @@ public: SFX_DECL_CHILDWINDOW_WITHID( ToolPanelChildWindow ); + static void RegisterChildWindowIfEnabled (sal_Bool bVisible=sal_False, SfxModule *pMod=NULL, sal_uInt16 nFlags=0); + // ::sfx2::ITaskPaneToolPanelAccess virtual void ActivateToolPanel( const OUString& i_rPanelURL ); }; diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx index 64094df62e6d..6aee3b0917d1 100644 --- a/sfx2/source/view/viewfrm.cxx +++ b/sfx2/source/view/viewfrm.cxx @@ -3418,21 +3418,26 @@ bool SfxViewFrame::IsSidebarEnabled() } // rip out the services from framework/ for good measure - if( !bEnabled ) + try { - try + uno::Reference< ui::XUIElementFactoryManager > xUIElementFactory = ui::UIElementFactoryManager::create( xContext ); + if( !bEnabled ) { - uno::Reference< ui::XUIElementFactoryManager > xUIElementFactory = ui::UIElementFactoryManager::create( xContext ); xUIElementFactory->deregisterFactory( "toolpanel", "ScPanelFactory", "" ); xUIElementFactory->deregisterFactory( "toolpanel", "SwPanelFactory", "" ); xUIElementFactory->deregisterFactory( "toolpanel", "SvxPanelFactory", "" ); xUIElementFactory->deregisterFactory( "toolpanel", "SdPanelFactory", "" ); } - catch ( const uno::Exception &e ) + else { - SAL_WARN( "sfx2.view", "Exception de-registering sidebar factories " << e.Message ); + xUIElementFactory->deregisterFactory( "toolpanel", "DrawingFramework", + "com.sun.star.presentation.PresentationDocument" ); } } + catch ( const uno::Exception &e ) + { + SAL_WARN( "sfx2.view", "Exception de-registering sidebar factories " << e.Message ); + } } return bEnabled;