RNA: disable undo on OperatorProperties and its subclasses.
authorAlexander Gavrilov <angavrilov@gmail.com>
Mon, 13 May 2019 09:36:39 +0000 (12:36 +0300)
committerAlexander Gavrilov <angavrilov@gmail.com>
Mon, 13 May 2019 09:36:54 +0000 (12:36 +0300)
Since these are temporary properties, changing them shouldn't cause
undo pushes. There already is a flag to disable that, but since each
operator inherits its own properties from the base, RNA define code
also had to be changed to allow inheriting the flag.

source/blender/makesrna/intern/rna_define.c
source/blender/makesrna/intern/rna_wm.c

index 20fbbed572cb0ca616f3fdf1b09eb305d198418f..8e24e9a8364acf36b70eac4302e1af5eb0470015 100644 (file)
@@ -890,9 +890,9 @@ StructRNA *RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRN
   srna->description = "";
   /* may be overwritten later RNA_def_struct_translation_context */
   srna->translation_context = BLT_I18NCONTEXT_DEFAULT_BPYRNA;
-  srna->flag |= STRUCT_UNDO;
   if (!srnafrom) {
     srna->icon = ICON_DOT;
+    srna->flag |= STRUCT_UNDO;
   }
 
   if (DefRNA.preprocess) {
index 3f904df6e003a270769fe3a502913c4c4f741d30..66904cae82c3b9bc52a7efcd78462c896e6fb983 100644 (file)
@@ -1868,6 +1868,7 @@ static void rna_def_operator(BlenderRNA *brna)
   RNA_def_struct_idprops_func(srna, "rna_OperatorProperties_idprops");
   RNA_def_struct_property_tags(srna, rna_enum_operator_property_tags);
   RNA_def_struct_flag(srna, STRUCT_NO_DATABLOCK_IDPROPERTIES);
+  RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
 }
 
 static void rna_def_macro_operator(BlenderRNA *brna)