Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-05-15 02:44:56 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-05-15 02:47:07 +0300
commit72e484e88fa6f2e66de5c3673a2bce1b2f61e603 (patch)
treefff5e4f36e6438700de2a60836a43c7daa62178b /source
parenta63be6c6c729a0047bb5cfeda2eca570053eac08 (diff)
Fix preference dirty tagging for addons & keymaps
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/interface/interface_handlers.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index ca5bb945d99..e4adf757c80 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -554,13 +554,26 @@ static bool ui_but_dragedit_update_mval(uiHandleButtonData *data, int mx)
static void ui_but_update_preferences_dirty(uiBut *but)
{
/* Not very elegant, but ensures preference changes force re-save. */
- if (but->rnaprop && (but->rnapoin.data == &U)) {
- /* Exclude navigation from setting dirty. */
- extern PropertyRNA rna_Preferences_active_section;
- if (!ELEM(but->rnaprop, &rna_Preferences_active_section)) {
- U.runtime.is_dirty = true;
- WM_main_add_notifier(NC_WINDOW, NULL);
+ bool tag = false;
+ if (but->rnaprop) {
+ if (but->rnapoin.data == &U) {
+ /* Exclude navigation from setting dirty. */
+ extern PropertyRNA rna_Preferences_active_section;
+ if (!ELEM(but->rnaprop, &rna_Preferences_active_section)) {
+ tag = true;
+ }
}
+ else {
+ StructRNA *base = RNA_struct_base(but->rnapoin.type);
+ if (ELEM(base, &RNA_AddonPreferences, &RNA_KeyConfigPreferences)) {
+ tag = true;
+ }
+ }
+ }
+
+ if (tag) {
+ U.runtime.is_dirty = true;
+ WM_main_add_notifier(NC_WINDOW, NULL);
}
}