editeng/source/editeng/impedit2.cxx |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

New commits:
commit d6fce28dea6e1e51ec5de88ef17cc56180b8c2db
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon May 18 12:21:09 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon May 18 15:47:57 2020 +0200

    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 <caol...@redhat.com>

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 );
             }
         }
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to