Fix T59165: Text operations fail to undo

Some undo operations encode multiple actions, now all are undone/redone.
This commit is contained in:
Campbell Barton
2019-01-09 14:07:35 +11:00
parent 49e3f08815
commit ea0abf52bf

View File

@@ -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);