summaryrefslogtreecommitdiff
path: root/editeng/source/editeng/impedit2.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-05-18 12:21:09 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-05-18 15:47:57 +0200
commitd6fce28dea6e1e51ec5de88ef17cc56180b8c2db (patch)
tree3bdca2637d76762932265c1576de1b7ce0cb6c35 /editeng/source/editeng/impedit2.cxx
parentbe6d95b75131f8044512c1b2f2743c556169f56d (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/+/94415 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'editeng/source/editeng/impedit2.cxx')
-rw-r--r--editeng/source/editeng/impedit2.cxx13
1 files changed, 9 insertions, 4 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 124b310ca249..eb9ef5eca2c3 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -478,13 +478,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 )
@@ -545,7 +549,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 );
}
}
}