diff options
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/svdmodel.cxx | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 14d45d61b962..9938a1f286b1 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -431,6 +431,16 @@ void SdrModel::ClearUndoBuffer() } } +bool SdrModel::HasUndoActions() const +{ + return pUndoStack && !pUndoStack->empty(); +} + +bool SdrModel::HasRedoActions() const +{ + return pRedoStack && !pRedoStack->empty(); +} + bool SdrModel::Undo() { bool bRet = false; @@ -440,7 +450,7 @@ bool SdrModel::Undo() } else { - SfxUndoAction* pDo=(SfxUndoAction*)GetUndoAction(0); + SfxUndoAction* pDo = HasUndoActions() ? pUndoStack->front() : NULL; if(pDo!=NULL) { const bool bWasUndoEnabled = mbUndoEnabled; @@ -466,7 +476,7 @@ bool SdrModel::Redo() } else { - SfxUndoAction* pDo=(SfxUndoAction*)GetRedoAction(0); + SfxUndoAction* pDo = HasRedoActions() ? pRedoStack->front() : NULL; if(pDo!=NULL) { const bool bWasUndoEnabled = mbUndoEnabled; @@ -492,7 +502,7 @@ bool SdrModel::Repeat(SfxRepeatTarget& rView) } else { - SfxUndoAction* pDo=(SfxUndoAction*)GetUndoAction(0); + SfxUndoAction* pDo = HasUndoActions() ? pUndoStack->front() : NULL; if(pDo!=NULL) { if(pDo->CanRepeat(rView)) |