[Bf-blender-cvs] [8eae674eee8] master: Fix preferences setting dirty when editing keymap items

Campbell Barton noreply at git.blender.org
Mon Jul 1 07:16:54 CEST 2019


Commit: 8eae674eee85931d7553bcfea7de17813ac9e70f
Author: Campbell Barton
Date:   Mon Jul 1 15:13:33 2019 +1000
Branches: master
https://developer.blender.org/rB8eae674eee85931d7553bcfea7de17813ac9e70f

Fix preferences setting dirty when editing keymap items

===================================================================

M	source/blender/editors/interface/interface_handlers.c

===================================================================

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 87d4bcbd1e8..b6c064ab1c1 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -551,12 +551,15 @@ static bool ui_but_dragedit_update_mval(uiHandleButtonData *data, int mx)
   return true;
 }
 
-static void ui_but_update_preferences_dirty(uiBut *but)
+static void ui_rna_update_preferences_dirty(PointerRNA *ptr, PropertyRNA *prop)
 {
   /* Not very elegant, but ensures preference changes force re-save. */
   bool tag = false;
-  if (but->rnaprop) {
-    StructRNA *base = RNA_struct_base(but->rnapoin.type);
+  if (prop && !(RNA_property_flag(prop) & PROP_NO_DEG_UPDATE)) {
+    StructRNA *base = RNA_struct_base(ptr->type);
+    if (base == NULL) {
+      base = ptr->type;
+    }
     if (ELEM(base, &RNA_AddonPreferences, &RNA_KeyConfigPreferences, &RNA_KeyMapItem)) {
       tag = true;
     }
@@ -568,6 +571,16 @@ static void ui_but_update_preferences_dirty(uiBut *but)
   }
 }
 
+static void ui_but_update_preferences_dirty(uiBut *but)
+{
+  ui_rna_update_preferences_dirty(&but->rnapoin, but->rnaprop);
+}
+
+static void ui_afterfunc_update_preferences_dirty(uiAfterFunc *after)
+{
+  ui_rna_update_preferences_dirty(&after->rnapoin, after->rnaprop);
+}
+
 /** \} */
 
 /* -------------------------------------------------------------------- */
@@ -843,6 +856,8 @@ static void ui_apply_but_funcs_after(bContext *C)
       MEM_freeN(after.rename_orig);
     }
 
+    ui_afterfunc_update_preferences_dirty(&after);
+
     if (after.undostr[0]) {
       ED_undo_push(C, after.undostr);
     }



More information about the Bf-blender-cvs mailing list