Correction to fix of T37688
rB68d39a262c90 didn't check correct file for doing versioning code. It shall check userprefs.blend not startup.blend.
This commit is contained in:
@@ -526,16 +526,16 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
|
|||||||
char prefstr[FILE_MAX];
|
char prefstr[FILE_MAX];
|
||||||
int success = 0;
|
int success = 0;
|
||||||
|
|
||||||
/* Indicates whether file was really load from memory.
|
/* Indicates whether user prefereneces were really load from memory.
|
||||||
*
|
*
|
||||||
* This is used for versioning code, and for this we can not rely on from_memory
|
* This is used for versioning code, and for this we can not rely on from_memory
|
||||||
* passed via argument. This is because there might be configuration folder
|
* passed via argument. This is because there might be configuration folder
|
||||||
* exists but it might not have startup.blend and in this case we fallback to
|
* exists but it might not have userpref.blend and in this case we fallback to
|
||||||
* reading home file from memory.
|
* reading home file from memory.
|
||||||
*
|
*
|
||||||
* And in this case versioning code is to be run.
|
* And in this case versioning code is to be run.
|
||||||
*/
|
*/
|
||||||
bool read_file_from_memory = false;
|
bool read_userdef_from_memory = true;
|
||||||
|
|
||||||
/* options exclude eachother */
|
/* options exclude eachother */
|
||||||
BLI_assert((from_memory && custom_file) == 0);
|
BLI_assert((from_memory && custom_file) == 0);
|
||||||
@@ -589,7 +589,6 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (success == 0) {
|
if (success == 0) {
|
||||||
read_file_from_memory = true;
|
|
||||||
success = BKE_read_file_from_memory(C, datatoc_startup_blend, datatoc_startup_blend_size, NULL, true);
|
success = BKE_read_file_from_memory(C, datatoc_startup_blend, datatoc_startup_blend_size, NULL, true);
|
||||||
if (wmbase.first == NULL) wm_clear_default_size(C);
|
if (wmbase.first == NULL) wm_clear_default_size(C);
|
||||||
BLI_init_temporary_dir(U.tempdir);
|
BLI_init_temporary_dir(U.tempdir);
|
||||||
@@ -604,7 +603,10 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
|
|||||||
/* check new prefs only after startup.blend was finished */
|
/* check new prefs only after startup.blend was finished */
|
||||||
if (!from_memory && BLI_exists(prefstr)) {
|
if (!from_memory && BLI_exists(prefstr)) {
|
||||||
int done = BKE_read_file_userdef(prefstr, NULL);
|
int done = BKE_read_file_userdef(prefstr, NULL);
|
||||||
if (done) printf("Read new prefs: %s\n", prefstr);
|
if (done) {
|
||||||
|
read_userdef_from_memory = false;
|
||||||
|
printf("Read new prefs: %s\n", prefstr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* prevent buggy files that had G_FILE_RELATIVE_REMAP written out by mistake. Screws up autosaves otherwise
|
/* prevent buggy files that had G_FILE_RELATIVE_REMAP written out by mistake. Screws up autosaves otherwise
|
||||||
@@ -612,7 +614,7 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
|
|||||||
G.fileflags &= ~G_FILE_RELATIVE_REMAP;
|
G.fileflags &= ~G_FILE_RELATIVE_REMAP;
|
||||||
|
|
||||||
/* check userdef before open window, keymaps etc */
|
/* check userdef before open window, keymaps etc */
|
||||||
wm_init_userdef(C, read_file_from_memory);
|
wm_init_userdef(C, read_userdef_from_memory);
|
||||||
|
|
||||||
/* match the read WM with current WM */
|
/* match the read WM with current WM */
|
||||||
wm_window_match_do(C, &wmbase);
|
wm_window_match_do(C, &wmbase);
|
||||||
|
|||||||
Reference in New Issue
Block a user