diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2016-01-29 00:40:36 +0200 |
---|---|---|
committer | Maxim Monastirsky <momonasmon@gmail.com> | 2016-01-29 01:13:54 +0200 |
commit | 6402164182865d7644d2e93158a23e12a6da3926 (patch) | |
tree | c3686605976e71875591b894a8f1a7b83668382f | |
parent | 8f1a1092d47947847e1d888b0284e8364c663d1f (diff) |
tdf#97411 ResourceMenuController: Don't forget to dispose MenuBarManager
Change-Id: Ib41952dae6bcca80436355fa5a0707e671fd3698
-rw-r--r-- | framework/source/uielement/resourcemenucontroller.cxx | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/framework/source/uielement/resourcemenucontroller.cxx b/framework/source/uielement/resourcemenucontroller.cxx index a626e3540353..581c22795da1 100644 --- a/framework/source/uielement/resourcemenucontroller.cxx +++ b/framework/source/uielement/resourcemenucontroller.cxx @@ -175,7 +175,11 @@ void ResourceMenuController::updatePopupMenu() } // Clear previous content. - m_xMenuBarManager.clear(); + if ( m_xMenuBarManager.is() ) + { + m_xMenuBarManager->dispose(); + m_xMenuBarManager.clear(); + } resetPopupMenu( m_xPopupMenu ); m_nNewMenuId = 1; @@ -240,7 +244,7 @@ void ResourceMenuController::itemActivated( const css::awt::MenuEvent& /*rEvent* VCLXMenu* pAwtMenu = VCLXMenu::GetImplementation( m_xPopupMenu ); css::uno::Reference< css::frame::XDispatchProvider > xDispatchProvider( m_xFrame, css::uno::UNO_QUERY ); m_xMenuBarManager.set( new framework::MenuBarManager( - m_xContext, m_xFrame, m_xURLTransformer, xDispatchProvider, m_aModuleName, pAwtMenu->GetMenu(), true, true, !m_bContextMenu && !m_bInToolbar ) ); + m_xContext, m_xFrame, m_xURLTransformer, xDispatchProvider, m_aModuleName, pAwtMenu->GetMenu(), false, true, !m_bContextMenu && !m_bInToolbar ) ); } } @@ -278,8 +282,12 @@ void ResourceMenuController::disposing( const css::lang::EventObject& rEvent ) m_xModuleConfigManager.clear(); else { + if ( m_xMenuBarManager.is() ) + { + m_xMenuBarManager->dispose(); + m_xMenuBarManager.clear(); + } svt::PopupMenuControllerBase::disposing( rEvent ); - m_xMenuBarManager.clear(); } } @@ -295,8 +303,12 @@ void ResourceMenuController::disposing() m_xConfigManager.clear(); m_xModuleConfigManager.clear(); - m_xMenuBarManager.clear(); m_xMenuContainer.clear(); + if ( m_xMenuBarManager.is() ) + { + m_xMenuBarManager->dispose(); + m_xMenuBarManager.clear(); + } svt::PopupMenuControllerBase::disposing(); } |