diff --git a/aegisub/src/subs_controller.cpp b/aegisub/src/subs_controller.cpp index bd4ccd072ce72686361bd453c2c46ecfd823dfd8..4720fd5d2f95e3b7d4af772974c742bf1d504a1e 100644 --- a/aegisub/src/subs_controller.cpp +++ b/aegisub/src/subs_controller.cpp @@ -308,9 +308,7 @@ void SubsController::OnCommit(AssFileCommit c) { void SubsController::Undo() { if (undo_stack.size() <= 1) return; - redo_stack.emplace_back(AssFile(), undo_stack.back().undo_description, commit_id); - context->ass->swap(redo_stack.back().file); - undo_stack.pop_back(); + redo_stack.splice(redo_stack.end(), undo_stack, std::prev(undo_stack.end())); *context->ass = undo_stack.back().file; commit_id = undo_stack.back().commit_id;