[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