Related: tdf#99523 two undo actions listed after dragging a slide

to a new place. "Delete Slides" and "Drag and Drop Slides", there
should only be the "Drag and Drop Slides" shown.

There is one more EndUndo than StartUndo. The extra one is the
last one of View::DragFinished. I surmise that this is meant
to match the BegUndo of View::StartDrag which is not called
in this situation.

This doesn't fix tdf#99523, but its the first thing I noticed,
so fix that first.

Change-Id: I3c31a3cfe83f28892112568bacfb25294366d6cf
This commit is contained in:
Caolán McNamara 2016-05-13 16:07:55 +01:00
parent 07794b4c22
commit 130f8eef23

View File

@ -427,7 +427,11 @@ void View::DragFinished( sal_Int8 nDropAction )
if( pDragTransferable )
pDragTransferable->SetInternalMove( false );
if( bUndo )
//This Undo appears to matches with the STR_UNDO_DRAGDROP Undo Start of
//View::StartDrag But this DragFinished can be called without a matching
//StartDrag. So use the existence of mpDragSrcMarkList as a flag that
//this EndUndo has a matching BegUndo
if (bUndo && mpDragSrcMarkList)
EndUndo();
mnDragSrcPgNum = SDRPAGE_NOTFOUND;
delete mpDragSrcMarkList;