Commit: b95b6b796695a8b82cda9898561de9e89021596f Author: Campbell Barton Date: Fri May 10 15:57:23 2019 +1000 Branches: master https://developer.blender.org/rBb95b6b796695a8b82cda9898561de9e89021596f
Preferences: add is_dirty member Tag preferences as dirty when changed (prepare for adding auto-save). =================================================================== M source/blender/blenkernel/intern/blendfile.c M source/blender/editors/interface/interface_handlers.c M source/blender/makesdna/DNA_userdef_types.h M source/blender/makesrna/intern/rna_userdef.c =================================================================== diff --git a/source/blender/blenkernel/intern/blendfile.c b/source/blender/blenkernel/intern/blendfile.c index f54d938c0ca..fdf535ba1ab 100644 --- a/source/blender/blenkernel/intern/blendfile.c +++ b/source/blender/blenkernel/intern/blendfile.c @@ -617,6 +617,9 @@ bool BKE_blendfile_userdef_write_all(ReportList *reports) } } + if (ok) { + U.runtime.is_dirty = false; + } return ok; } diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 111dfe01319..fe70509d4c2 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -7566,6 +7566,11 @@ static void button_activate_exit( if (block->flag & UI_BLOCK_POPUP_MEMORY) { ui_popup_menu_memory_set(block, but); } + + /* Not very elegant, but ensures preference changes force re-save. */ + if (but->rnaprop && (but->rnapoin.data == &U)) { + U.runtime.is_dirty = true; + } } /* disable tooltips until mousemove + last active flag */ diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 3ceba714c37..3d0bdee0cab 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -537,6 +537,11 @@ typedef struct WalkNavigation { char _pad0[6]; } WalkNavigation; +typedef struct UserDef_Runtime { + char is_dirty; + char _pad0[7]; +} UserDef_Runtime; + typedef struct UserDef { /* UserDef has separate do-version handling, and can be read from other files */ int versionfile, subversionfile; @@ -767,6 +772,9 @@ typedef struct UserDef { char viewport_aa; char _pad5[2]; + + /** Runtime data (keep last). */ + UserDef_Runtime runtime; } UserDef; /* from blenkernel blender.c */ diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index c36c10fd4b3..ccfeb8441bd 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -184,8 +184,11 @@ static void rna_userdef_version_get(PointerRNA *ptr, int *value) value[2] = userdef->subversionfile; } -static void rna_userdef_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr)) +static void rna_userdef_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { + UserDef *userdef = (UserDef *)ptr->data; + userdef->runtime.is_dirty = true; + WM_main_add_notifier(NC_WINDOW, NULL); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs