[Bf-blender-cvs] [46c7d45f774] master: Fix T51889: broken UI after File > New without a userpref.blend.

Brecht Van Lommel noreply at git.blender.org
Mon Jul 3 02:28:45 CEST 2017


Commit: 46c7d45f7748f70c677fb892255beabc10f3cac2
Author: Brecht Van Lommel
Date:   Mon Jul 3 02:24:40 2017 +0200
Branches: master
https://developer.blender.org/rB46c7d45f7748f70c677fb892255beabc10f3cac2

Fix T51889: broken UI after File > New without a userpref.blend.

BLO_update_defaults_userpref_blend() was being run when no user preferences
were loaded from memory.

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

M	source/blender/windowmanager/intern/wm_files.c

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

diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 379772d5175..ae0b687a21a 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -316,7 +316,7 @@ static void wm_window_match_do(bContext *C, ListBase *oldwmlist)
 }
 
 /* in case UserDef was read, we re-initialize all, and do versioning */
-static void wm_init_userdef(bContext *C, const bool use_factory_settings)
+static void wm_init_userdef(bContext *C, const bool read_userdef_from_memory)
 {
 	Main *bmain = CTX_data_main(C);
 
@@ -336,7 +336,7 @@ static void wm_init_userdef(bContext *C, const bool use_factory_settings)
 	}
 
 	/* avoid re-saving for every small change to our prefs, allow overrides */
-	if (use_factory_settings) {
+	if (read_userdef_from_memory) {
 		BLO_update_defaults_userpref_blend();
 	}
 
@@ -667,7 +667,7 @@ int wm_homefile_read(
 	 *
 	 * And in this case versioning code is to be run.
 	 */
-	bool read_userdef_from_memory = true;
+	bool read_userdef_from_memory = false;
 	eBLOReadSkip skip_flags = 0;
 
 	/* options exclude eachother */
@@ -713,7 +713,6 @@ int wm_homefile_read(
 			BKE_blender_userdef_set_data(userdef);
 			MEM_freeN(userdef);
 
-			read_userdef_from_memory = false;
 			skip_flags |= BLO_READ_SKIP_USERDEF;
 			printf("Read prefs: %s\n", filepath_userdef);
 		}
@@ -775,6 +774,9 @@ int wm_homefile_read(
 		success = BKE_blendfile_read_from_memory(
 		        C, datatoc_startup_blend, datatoc_startup_blend_size,
 		        NULL, skip_flags, true);
+		if (success && !(skip_flags & BLO_READ_SKIP_USERDEF)) {
+			read_userdef_from_memory = true;
+		}
 		if (BLI_listbase_is_empty(&wmbase)) {
 			wm_clear_default_size(C);
 		}
@@ -810,6 +812,7 @@ int wm_homefile_read(
 			/* we need to have preferences load to overwrite preferences from previous template */
 			userdef_template = BKE_blendfile_userdef_read_from_memory(
 			        datatoc_startup_blend, datatoc_startup_blend_size, NULL);
+			read_userdef_from_memory = true;
 		}
 		if (userdef_template) {
 			BKE_blender_userdef_set_app_template(userdef_template);




More information about the Bf-blender-cvs mailing list