diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-05-18 12:21:09 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2020-05-27 08:44:32 +0200 |
commit | 344fd7aaa967ae304f60def3ba92b25c4f0334f0 (patch) | |
tree | 45c67d93bf21c7f3ea1a273ed08ab732338b39e5 | |
parent | 792d76df2a1ea3068e755302540a083ec3c8cb78 (diff) |
Resolves: tdf#129620 crash because there is no associated window
only an outputdevice in this editeng-in-a-widget case
Change-Id: Idf054872a48befba652012cd511e4f9df4437166
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94282
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 607664c0f3d0..dc1730a72a94 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -496,13 +496,17 @@ void ImpEditEngine::Command( const CommandEvent& rCEvt, EditView* pView ) if ( nInputEnd > rLine.GetEnd() ) nInputEnd = rLine.GetEnd(); tools::Rectangle aR2 = PaMtoEditCursor( EditPaM( aPaM.GetNode(), nInputEnd ), GetCursorFlags::EndOfLine ); - tools::Rectangle aRect = pView->GetImpEditView()->GetWindowPos( aR1 ); - pView->GetWindow()->SetCursorRect( &aRect, aR2.Left()-aR1.Right() ); + if (vcl::Window* pWindow = pView->GetWindow()) + { + tools::Rectangle aRect = pView->GetImpEditView()->GetWindowPos( aR1 ); + pWindow->SetCursorRect( &aRect, aR2.Left()-aR1.Right() ); + } } } else { - pView->GetWindow()->SetCursorRect(); + if (vcl::Window* pWindow = pView->GetWindow()) + pWindow->SetCursorRect(); } } else if ( rCEvt.GetCommand() == CommandEventId::SelectionChange ) @@ -563,7 +567,8 @@ void ImpEditEngine::Command( const CommandEvent& rCEvt, EditView* pView ) tools::Rectangle aR2 = GetEditCursor( pParaPortion, nInputPos ); aRects[ i ] = pView->GetImpEditView()->GetWindowPos( aR2 ); } - pView->GetWindow()->SetCompositionCharRect( aRects.get(), mpIMEInfos->nLen ); + if (vcl::Window* pWindow = pView->GetWindow()) + pWindow->SetCompositionCharRect( aRects.get(), mpIMEInfos->nLen ); } } } |