diff options
Diffstat (limited to 'source/blender/editors/undo/ed_undo.c')
-rw-r--r-- | source/blender/editors/undo/ed_undo.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/undo/ed_undo.c b/source/blender/editors/undo/ed_undo.c index 6633e1c427c..50e0bb1f1c2 100644 --- a/source/blender/editors/undo/ed_undo.c +++ b/source/blender/editors/undo/ed_undo.c @@ -98,6 +98,14 @@ void ED_undo_push(bContext *C, const char *str) if (steps <= 0) { return; } + if (G.background) { + /* Python developers may have explicitly created the undo stack in background mode, + * otherwise allow it to be NULL, see: T60934. + * Otherwise it must never be NULL, even when undo is disabled. */ + if (wm->undo_stack == NULL) { + return; + } + } /* Only apply limit if this is the last undo step. */ if (wm->undo_stack->step_active && (wm->undo_stack->step_active->next == NULL)) { @@ -360,7 +368,7 @@ bool ED_undo_is_legacy_compatible_for_property(struct bContext *C, ID *id) CLOG_INFO(&LOG, 1, "skipping undo for paint-mode"); return false; } - else if (obact->mode & OB_MODE_EDIT) { + if (obact->mode & OB_MODE_EDIT) { if ((id == NULL) || (obact->data == NULL) || (GS(id->name) != GS(((ID *)obact->data)->name))) { /* No undo push on id type mismatch in edit-mode. */ |