diff options
Diffstat (limited to 'UnoControls')
-rw-r--r-- | UnoControls/inc/basecontrol.hxx | 2 | ||||
-rw-r--r-- | UnoControls/source/base/basecontrol.cxx | 48 |
2 files changed, 19 insertions, 31 deletions
diff --git a/UnoControls/inc/basecontrol.hxx b/UnoControls/inc/basecontrol.hxx index f78686e483fb..fbf1686d2a51 100644 --- a/UnoControls/inc/basecontrol.hxx +++ b/UnoControls/inc/basecontrol.hxx @@ -379,8 +379,6 @@ protected: private: - void impl_releasePeer(); - OMRCListenerMultiplexerHelper* impl_getMultiplexer(); css::uno::Reference< css::uno::XComponentContext > m_xComponentContext; diff --git a/UnoControls/source/base/basecontrol.cxx b/UnoControls/source/base/basecontrol.cxx index b9c7e4cf0052..457dd5cb7821 100644 --- a/UnoControls/source/base/basecontrol.cxx +++ b/UnoControls/source/base/basecontrol.cxx @@ -231,7 +231,25 @@ void SAL_CALL BaseControl::dispose() throw( RuntimeException, std::exception ) // release context and peer m_xContext.clear(); - impl_releasePeer(); + if ( m_xPeer.is() ) + { + if ( m_xGraphicsPeer.is() ) + { + removePaintListener( this ); + removeWindowListener( this ); + m_xGraphicsPeer.clear(); + } + + m_xPeer->dispose(); + m_xPeerWindow.clear(); + m_xPeer.clear(); + + if ( m_pMultiplexer != nullptr ) + { + // take changes on multiplexer + m_pMultiplexer->setPeer( Reference< XWindow >() ); + } + } // release view if ( m_xGraphicsView.is() ) @@ -741,34 +759,6 @@ void BaseControl::impl_recalcLayout( const WindowEvent& /*aEvent*/ ) // But we make it not pure virtual because it's not necessary for all derived classes! } -// protected method - - -// private method - -void BaseControl::impl_releasePeer() -{ - if ( m_xPeer.is() ) - { - if ( m_xGraphicsPeer.is() ) - { - removePaintListener( this ); - removeWindowListener( this ); - m_xGraphicsPeer.clear(); - } - - m_xPeer->dispose(); - m_xPeerWindow.clear(); - m_xPeer.clear(); - - if ( m_pMultiplexer != nullptr ) - { - // take changes on multiplexer - m_pMultiplexer->setPeer( Reference< XWindow >() ); - } - } -} - // private method OMRCListenerMultiplexerHelper* BaseControl::impl_getMultiplexer() |