aboutsummaryrefslogtreecommitdiffhomepage
path: root/undo.cpp
diff options
context:
space:
mode:
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)