summaryrefslogtreecommitdiff
path: root/svx/source/svdraw
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r--svx/source/svdraw/svdmodel.cxx16
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))