summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Loftis <ben@glw.com>2009-09-13 19:44:55 +0000
committerBen Loftis <ben@glw.com>2009-09-13 19:44:55 +0000
commit5bf6193fe96d5c43aa10c4f7b5497424b692c749 (patch)
treee5e2948535261529c23e5956a1073a4bf138b9ee
parent81e962bbd47905ee2c3f2710e018315459a62854 (diff)
fix logic in undo, redo, and swap_visual_state
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5661 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 693ff74623..f5aa512eab 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -4375,10 +4375,11 @@ Editor::undo_visual_state ()
return;
}
+ redo_visual_stack.push_back (current_visual_state());
+
VisualState* vs = undo_visual_stack.back();
undo_visual_stack.pop_back();
use_visual_state (*vs);
- redo_visual_stack.push_back (vs);
}
void
@@ -4388,10 +4389,11 @@ Editor::redo_visual_state ()
return;
}
+ undo_visual_stack.push_back (current_visual_state());
+
VisualState* vs = redo_visual_stack.back();
redo_visual_stack.pop_back();
use_visual_state (*vs);
- undo_visual_stack.push_back (vs);
}
void
@@ -4401,6 +4403,7 @@ Editor::swap_visual_state ()
redo_visual_state ();
} else {
undo_visual_state ();
+ undo_visual_stack.clear(); //swap_visual_state truncates the undo stack so we are just bouncing between 2 states
}
}