From 16614be0a5dea0613fedb6bbbb9f0dd8879905a2 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Thu, 8 Nov 2012 18:17:19 +0100 Subject: set UndoToken position only when it is required (undo enabled) --- undo.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'undo.cpp') 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 void -UndoStack::push_var(Type &variable, Type value) +UndoStack::push_msg(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - UndoToken *token = new UndoTokenVariable(variable, value); - SLIST_INSERT_HEAD(&head, token, tokens); + push(new UndoTokenMessage(iMessage, wParam, lParam)); } -#endif void UndoStack::pop(gint pos) -- cgit v1.2.3