Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / intern / undo_system.c
index 7eaf42591f0619054dff093a50d383f6558bd6bd..f5e4c354a02b58820cd1e5908cc9e1235763a848 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "BKE_context.h"
 #include "BKE_global.h"
+#include "BKE_library_override.h"
 #include "BKE_main.h"
 #include "BKE_undo_system.h"
 
@@ -395,12 +396,19 @@ UndoStep *BKE_undosys_step_push_init(UndoStack *ustack, bContext *C, const char
        return BKE_undosys_step_push_init_with_type(ustack, C, name, ut);
 }
 
+/**
+ * \param C: Can be NULL from some callers if their encoding function doesn't need it
+ */
 bool BKE_undosys_step_push_with_type(UndoStack *ustack, bContext *C, const char *name, const UndoType *ut)
 {
        UNDO_NESTED_ASSERT(false);
        undosys_stack_validate(ustack, false);
        bool is_not_empty = ustack->step_active != NULL;
 
+       /* Might not be final place for this to be called - probably only want to call it from some
+        * undo handlers, not all of them? */
+       BKE_main_override_static_operations_create(G.main, false);
+
        /* Remove all undos after (also when 'ustack->step_active == NULL'). */
        while (ustack->steps.last != ustack->step_active) {
                UndoStep *us_iter = ustack->steps.last;