From ea0abf52bfab2677f58023833146783e54f8f4c0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 9 Jan 2019 14:07:35 +1100 Subject: [PATCH] Fix T59165: Text operations fail to undo Some undo operations encode multiple actions, now all are undone/redone. --- source/blender/editors/space_text/text_undo.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/space_text/text_undo.c b/source/blender/editors/space_text/text_undo.c index 729522cc8f4..b79a77a4353 100644 --- a/source/blender/editors/space_text/text_undo.c +++ b/source/blender/editors/space_text/text_undo.c @@ -121,12 +121,18 @@ static void text_undosys_step_decode(struct bContext *C, UndoStep *us_p, int dir if (dir < 0) { TextUndoBuf data = us->data; - txt_do_undo(text, &data); + while (data.pos > -1) { + txt_do_undo(text, &data); + } + BLI_assert(data.pos == -1); } else { TextUndoBuf data = us->data; data.pos = -1; - txt_do_redo(text, &data); + while (data.pos < us->data.pos) { + txt_do_redo(text, &data); + } + BLI_assert(data.pos == us->data.pos); } text_update_edited(text);