diff options
author | Thomas Lange [tl] <tl@openoffice.org> | 2010-04-23 08:03:06 +0200 |
---|---|---|
committer | Thomas Lange [tl] <tl@openoffice.org> | 2010-04-23 08:03:06 +0200 |
commit | 7bbc0b7c77ad3709ac14de13a22a5ee6c42bf90f (patch) | |
tree | c5260b47977a5648c582ce3a259a9396593e557a /editeng | |
parent | dcee57dba3d6bb88dcdc9f36ac4c6dd0dca699b9 (diff) |
cws tl80: #i109743# editengine occasional drag and drop crash fixed
Diffstat (limited to 'editeng')
-rwxr-xr-x[-rw-r--r--] | editeng/source/editeng/impedit.cxx | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/editeng/source/editeng/impedit.cxx b/editeng/source/editeng/impedit.cxx index b327d2a685bd..9ac7de8e2b7d 100644..100755 --- a/editeng/source/editeng/impedit.cxx +++ b/editeng/source/editeng/impedit.cxx @@ -1489,7 +1489,7 @@ void ImpEditView::HideDDCursor() void ImpEditView::ShowDDCursor( const Rectangle& rRect ) { - if ( !pDragAndDropInfo->bVisCursor ) + if ( pDragAndDropInfo && !pDragAndDropInfo->bVisCursor ) { if ( pOutWin->GetCursor() ) pOutWin->GetCursor()->Hide(); @@ -1544,6 +1544,8 @@ void ImpEditView::dragGestureRecognized( const ::com::sun::star::datatransfer::d vos::OGuard aVclGuard( Application::GetSolarMutex() ); + pDragAndDropInfo = NULL; + Point aMousePosPixel( rDGE.DragOriginX, rDGE.DragOriginY ); EditSelection aCopySel( GetEditSelection() ); @@ -1717,7 +1719,7 @@ void ImpEditView::drop( const ::com::sun::star::datatransfer::dnd::DropTargetDro DBG_ASSERT( pDragAndDropInfo, "Drop - No Drag&Drop info?!" ); - if ( pDragAndDropInfo->bDragAccepted ) + if ( pDragAndDropInfo && pDragAndDropInfo->bDragAccepted ) { pEditEngine->GetBeginDropHdl().Call(GetEditViewPtr()); BOOL bChanges = FALSE; @@ -1817,7 +1819,7 @@ void ImpEditView::dragExit( const ::com::sun::star::datatransfer::dnd::DropTarge HideDDCursor(); - if ( !pDragAndDropInfo->bStarterOfDD ) + if ( pDragAndDropInfo && !pDragAndDropInfo->bStarterOfDD ) { delete pDragAndDropInfo; pDragAndDropInfo = NULL; @@ -1837,7 +1839,7 @@ void ImpEditView::dragOver( const ::com::sun::star::datatransfer::dnd::DropTarge { // sal_Int8 nSupportedActions = bReadOnly ? datatransfer::dnd::DNDConstants::ACTION_COPY : datatransfer::dnd::DNDConstants::ACTION_COPY_OR_MOVE; - if ( pDragAndDropInfo->bHasValidData /* && ( nSupportedActions & rDTDE.DropAction ) MT: Default = 0x80 ?! */ ) + if ( pDragAndDropInfo && pDragAndDropInfo->bHasValidData /* && ( nSupportedActions & rDTDE.DropAction ) MT: Default = 0x80 ?! */ ) { bAccept = sal_True; @@ -1957,7 +1959,8 @@ void ImpEditView::dragOver( const ::com::sun::star::datatransfer::dnd::DropTarge if ( !bAccept ) { HideDDCursor(); - pDragAndDropInfo->bDragAccepted = FALSE; + if (pDragAndDropInfo) + pDragAndDropInfo->bDragAccepted = FALSE; rDTDE.Context->rejectDrag(); } } |