sw/source/uibase/docvw/srcedtw.cxx | 17 +++++++++++++---- sw/source/uibase/uiview/srcview.cxx | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-)
New commits: commit ffc08eac223211d3ca2d4ebadb9ccb8e26d22a5e Author: Michael Meeks <michael.me...@collabora.com> Date: Sat Jun 20 12:46:31 2015 +0100 tdf#92166 - dispose the SwSrcEditWindow properly. Also improve dispose method to cleanup various pointers. Also avoid crash on post dispose MouseUp event. Change-Id: Ic337a8306566d5b5c81b939be6f89f34fbcc5847 diff --git a/sw/source/uibase/docvw/srcedtw.cxx b/sw/source/uibase/docvw/srcedtw.cxx index eb9dbf4..c15e72d 100644 --- a/sw/source/uibase/docvw/srcedtw.cxx +++ b/sw/source/uibase/docvw/srcedtw.cxx @@ -283,13 +283,18 @@ void SwSrcEditWindow::dispose() n->removePropertiesChangeListener(listener_.get()); } aSyntaxIdle.Stop(); + if ( pOutWin ) + pOutWin->SetTextView( NULL ); + if ( pTextEngine ) { EndListening( *pTextEngine ); pTextEngine->RemoveView( pTextView ); delete pTextView; + pTextView = NULL; delete pTextEngine; + pTextEngine = NULL; } pHScrollbar.disposeAndClear(); pVScrollbar.disposeAndClear(); @@ -399,10 +404,14 @@ void TextViewOutWin::MouseButtonUp( const MouseEvent &rEvt ) if ( pTextView ) { pTextView->MouseButtonUp( rEvt ); - SfxBindings& rBindings = static_cast<SwSrcEditWindow*>(GetParent())->GetSrcView()->GetViewFrame()->GetBindings(); - rBindings.Invalidate( SID_TABLE_CELL ); - rBindings.Invalidate( SID_CUT ); - rBindings.Invalidate( SID_COPY ); + SfxViewFrame *pFrame = static_cast<SwSrcEditWindow*>(GetParent())->GetSrcView()->GetViewFrame(); + if ( pFrame ) + { + SfxBindings& rBindings = pFrame->GetBindings(); + rBindings.Invalidate( SID_TABLE_CELL ); + rBindings.Invalidate( SID_CUT ); + rBindings.Invalidate( SID_COPY ); + } } } diff --git a/sw/source/uibase/uiview/srcview.cxx b/sw/source/uibase/uiview/srcview.cxx index b29c897..db8aeba 100644 --- a/sw/source/uibase/uiview/srcview.cxx +++ b/sw/source/uibase/uiview/srcview.cxx @@ -243,6 +243,8 @@ SwSrcView::~SwSrcView() (delay != 0) || !url.isEmpty()); EndListening(*pDocShell); delete pSearchItem; + + aEditWin.disposeAndClear(); } void SwSrcView::SaveContentTo(SfxMedium& rMed) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits