Fix T37688: User Preferences do not load correctly

Issue was caused by from_memory=true passing to wm_homefile_read
in case there's a configuration folder for current blender.

But the thing is, we still might fallback to reading home file
from memory (i.e. in cases there's no startup.blend in config
folder).

In this case we still need to run versioning code for userprefs.
This commit is contained in:
Sergey Sharybin 2013-12-05 19:32:48 +06:00
parent 4838a60b0c
commit 68d39a262c
Notes: blender-bot 2023-02-14 11:31:07 +01:00
Referenced by commit 3f82e829e5, Correction to fix of T37688
Referenced by issue #37688, User Preferences do not load correctly
1 changed files with 13 additions and 1 deletions

View File

@ -526,6 +526,17 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
char prefstr[FILE_MAX];
int success = 0;
/* Indicates whether file was really load 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
* exists but it might not have startup.blend and in this case we fallback to
* reading home file from memory.
*
* And in this case versioning code is to be run.
*/
bool read_file_from_memory = false;
/* options exclude eachother */
BLI_assert((from_memory && custom_file) == 0);
@ -578,6 +589,7 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
}
if (success == 0) {
read_file_from_memory = 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);
BLI_init_temporary_dir(U.tempdir);
@ -600,7 +612,7 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
G.fileflags &= ~G_FILE_RELATIVE_REMAP;
/* check userdef before open window, keymaps etc */
wm_init_userdef(C, (bool)from_memory);
wm_init_userdef(C, read_file_from_memory);
/* match the read WM with current WM */
wm_window_match_do(C, &wmbase);