reportdesign/source/ui/report/DesignView.cxx | 2 +- sw/source/uibase/docvw/FrameControlsManager.cxx | 5 +++++ sw/source/uibase/docvw/PageBreakWin.cxx | 6 +++++- sw/source/uibase/docvw/SidebarWin.cxx | 4 ++++ sw/source/uibase/docvw/edtwin.cxx | 14 ++++++++++++++ sw/source/uibase/inc/FrameControlsManager.hxx | 3 ++- vcl/source/window/window.cxx | 2 ++ 7 files changed, 33 insertions(+), 3 deletions(-)
New commits: commit cfec0497e1cd98fb355464eb6466708b13e0414e Author: Michael Meeks <[email protected]> Date: Fri Feb 27 15:39:58 2015 +0000 sw: more double dispose work. Change-Id: I746623d14a96bb1b2756e49da4d41adf9dbc55ca diff --git a/reportdesign/source/ui/report/DesignView.cxx b/reportdesign/source/ui/report/DesignView.cxx index b5fc1f8..f7d865f 100644 --- a/reportdesign/source/ui/report/DesignView.cxx +++ b/reportdesign/source/ui/report/DesignView.cxx @@ -206,7 +206,7 @@ bool ODesignView::PreNotify( NotifyEvent& rNEvt ) const vcl::KeyCode& rCode = pKeyEvent->GetKeyCode(); util::URL aUrl; aUrl.Complete = m_pAccel->findCommand(svt::AcceleratorExecute::st_VCLKey2AWTKey(rCode)); - if ( aUrl.Complete.isEmpty() || !m_rController.isCommandEnabled( aUrl.Complete ) ) + if ( aUrl.Complete.isEmpty() || !m_xController->isCommandEnabled( aUrl.Complete ) ) nRet = false; } } diff --git a/sw/source/uibase/docvw/FrameControlsManager.cxx b/sw/source/uibase/docvw/FrameControlsManager.cxx index 7cd0e7f..e168096 100644 --- a/sw/source/uibase/docvw/FrameControlsManager.cxx +++ b/sw/source/uibase/docvw/FrameControlsManager.cxx @@ -34,6 +34,11 @@ SwFrameControlsManager::SwFrameControlsManager( const SwFrameControlsManager& rC { } +void SwFrameControlsManager::dispose() +{ + m_aControls.clear(); +} + const SwFrameControlsManager& SwFrameControlsManager::operator=( const SwFrameControlsManager& rCopy ) { m_pEditWin = rCopy.m_pEditWin; diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx index 6c8d3d3..a8361ff 100644 --- a/sw/source/uibase/docvw/PageBreakWin.cxx +++ b/sw/source/uibase/docvw/PageBreakWin.cxx @@ -124,9 +124,13 @@ void SwPageBreakWin::dispose() m_bDestroyed = true; m_aFadeTimer.Stop(); - delete m_pPopupMenu; delete m_pLine; + m_pLine = NULL; + delete m_pPopupMenu; + m_pPopupMenu = NULL; delete m_pMousePt; + m_pMousePt = NULL; + MenuButton::dispose(); } diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx index c540473..58a943a 100644 --- a/sw/source/uibase/docvw/SidebarWin.cxx +++ b/sw/source/uibase/docvw/SidebarWin.cxx @@ -142,6 +142,9 @@ SwSidebarWin::~SwSidebarWin() void SwSidebarWin::dispose() { + if (IsDisposed()) + return; + mrMgr.DisconnectSidebarWinFromFrm( *(mrSidebarItem.maLayoutInfo.mpAnchorFrm), *this ); @@ -206,6 +209,7 @@ void SwSidebarWin::dispose() if (mnEventId) Application::RemoveUserEvent( mnEventId ); + vcl::Window::dispose(); } diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index 819c2bc..24575a3 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -5023,16 +5023,30 @@ SwEditWin::~SwEditWin() void SwEditWin::dispose() { m_aKeyInputTimer.Stop(); + delete m_pShadCrsr; + m_pShadCrsr = NULL; + delete m_pRowColumnSelectionStart; + m_pRowColumnSelectionStart = NULL; + if( m_pQuickHlpData->m_bIsDisplayed && m_rView.GetWrtShellPtr() ) m_pQuickHlpData->Stop( m_rView.GetWrtShell() ); + bExecuteDrag = false; delete m_pApplyTempl; + m_pApplyTempl = NULL; + m_rView.SetDrawFuncPtr(NULL); delete m_pUserMarker; + m_pUserMarker = NULL; + delete m_pAnchorMarker; + m_pAnchorMarker = NULL; + + m_aFrameControlsManager.dispose(); + vcl::Window::dispose(); } diff --git a/sw/source/uibase/inc/FrameControlsManager.hxx b/sw/source/uibase/inc/FrameControlsManager.hxx index 75585ea..42584a1 100644 --- a/sw/source/uibase/inc/FrameControlsManager.hxx +++ b/sw/source/uibase/inc/FrameControlsManager.hxx @@ -35,7 +35,8 @@ class SwFrameControlsManager public: SwFrameControlsManager( SwEditWin* pEditWin ); - ~SwFrameControlsManager( ); + ~SwFrameControlsManager(); + void dispose(); SwFrameControlsManager( const SwFrameControlsManager& rCopy ); const SwFrameControlsManager& operator=( const SwFrameControlsManager& rCopy ); diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index c7ef813..2dd3354 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2530,6 +2530,8 @@ void Window::GetBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder, void Window::Enable( bool bEnable, bool bChild ) { + if ( IsDisposed() ) + return; if ( !bEnable ) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
