diff options
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 10 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_files.c | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_init_exit.c | 1 |
3 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 7e10bff49a4..5a3e9141fad 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -105,6 +105,7 @@ #include "BLI_endian_switch.h" #include "BLI_blenlib.h" +#include "BLI_callbacks.h" #include "BLI_math.h" #include "BLI_threads.h" #include "BLI_mempool.h" @@ -7889,8 +7890,12 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath) } /* do before read_libraries, but skip undo case */ - if (fd->memfile==NULL) + if (fd->memfile==NULL) { do_versions(fd, NULL, bfd->main); + if (BLI_thread_is_main()) { + BLI_callback_exec(bfd->main, NULL, BLI_CB_EVT_VERSION_UPDATE); + } + } do_versions_userdef(fd, bfd); @@ -9527,6 +9532,9 @@ static void read_libraries(FileData *basefd, ListBase *mainlist) do_versions(mainptr->curlib->filedata, mainptr->curlib, mainptr); else do_versions(basefd, NULL, mainptr); + if (BLI_thread_is_main()) { + BLI_callback_exec(mainptr, NULL, BLI_CB_EVT_VERSION_UPDATE); + } } if (mainptr->curlib->filedata) diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index c1c31f6795d..c6f12f55840 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -478,7 +478,6 @@ bool WM_file_read(bContext *C, const char *filepath, ReportList *reports) WM_operatortype_last_properties_clear_all(); /* important to do before NULL'ing the context */ - BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE); BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST); if (!G.background) { @@ -672,7 +671,6 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c WM_operatortype_last_properties_clear_all(); /* important to do before NULL'ing the context */ - BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE); BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST); WM_event_add_notifier(C, NC_WM | ND_FILEREAD, NULL); diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index cb03d022afd..03c6414ef76 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -240,7 +240,6 @@ void WM_init(bContext *C, int argc, const char **argv) * * unlikely any handlers are set but its possible, * note that recovering the last session does its own callbacks. */ - BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_VERSION_UPDATE); BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST); } } |