aboutsummaryrefslogtreecommitdiffhomepage
path: root/undo.cpp
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-08 18:17:19 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2012-11-08 18:17:19 +0100
commit16614be0a5dea0613fedb6bbbb9f0dd8879905a2 (patch)
treea942507f90d669a3432f0177592e6e59345483f2 /undo.cpp
parent779bb1654d20af6139f17bdaf9a38bcb75d20965 (diff)
downloadsciteco-16614be0a5dea0613fedb6bbbb9f0dd8879905a2.tar.gz
set UndoToken position only when it is required (undo enabled)
Diffstat (limited to 'undo.cpp')
-rw-r--r--undo.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/undo.cpp b/undo.cpp
index 7a58c92..c6b30ff 100644
--- a/undo.cpp
+++ b/undo.cpp
@@ -10,8 +10,6 @@
UndoStack undo;
-UndoToken::UndoToken() : pos(strlen(cmdline)) {}
-
void
UndoTokenMessage::run(void)
{
@@ -19,20 +17,21 @@ UndoTokenMessage::run(void)
}
void
-UndoStack::push_msg(unsigned int iMessage, uptr_t wParam, sptr_t lParam)
+UndoStack::push(UndoToken *token)
{
- push(new UndoTokenMessage(iMessage, wParam, lParam));
+ if (enabled) {
+ token->pos = strlen(cmdline);
+ SLIST_INSERT_HEAD(&head, token, tokens);
+ } else {
+ delete token;
+ }
}
-#if 0
-template <typename Type>
void
-UndoStack::push_var(Type &variable, Type value)
+UndoStack::push_msg(unsigned int iMessage, uptr_t wParam, sptr_t lParam)
{
- UndoToken *token = new UndoTokenVariable<Type>(variable, value);
- SLIST_INSERT_HEAD(&head, token, tokens);
+ push(new UndoTokenMessage(iMessage, wParam, lParam));
}
-#endif
void
UndoStack::pop(gint pos)