UI: File Loading Waiting Feedback #112636
@ -692,6 +692,8 @@ static void wm_file_read_post(bContext *C,
|
||||
CTX_wm_window_set(C, static_cast<wmWindow *>(wm->windows.first));
|
||||
}
|
||||
|
||||
WM_cursor_wait(true);
|
||||
|
||||
#ifdef WITH_PYTHON
|
||||
if (is_startup_file) {
|
||||
/* On startup (by default), Python won't have been initialized.
|
||||
@ -785,6 +787,12 @@ static void wm_file_read_post(bContext *C,
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef WITH_HEADLESS
|
||||
if (!G.background) {
|
||||
WM_redraw_windows(C);
|
||||
}
|
||||
#endif /* WITH_HEADLESS */
|
||||
|
||||
/* report any errors.
|
||||
* currently disabled if addons aren't yet loaded */
|
||||
if (addons_loaded) {
|
||||
@ -818,6 +826,8 @@ static void wm_file_read_post(bContext *C,
|
||||
WM_toolsystem_init(C);
|
||||
}
|
||||
}
|
||||
|
||||
WM_cursor_wait(false);
|
||||
}
|
||||
|
||||
static void wm_read_callback_pre_wrapper(bContext *C, const char *filepath)
|
||||
@ -1002,6 +1012,26 @@ bool WM_file_read(bContext *C, const char *filepath, ReportList *reports)
|
||||
/* so we can get the error message */
|
||||
errno = 0;
|
||||
|
||||
#ifndef WITH_HEADLESS
|
||||
if (!G.background) {
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
wmWindow *win = CTX_wm_window(C);
|
||||
bool win_was_null = (win == nullptr);
|
||||
if (win_was_null) {
|
||||
win = static_cast<wmWindow *>(wm->windows.first);
|
||||
CTX_wm_window_set(C, win);
|
||||
}
|
||||
if (win != nullptr) {
|
||||
/* Redraw to remove any open menus. */
|
||||
WM_redraw_windows(C);
|
||||
|
||||
if (win_was_null) {
|
||||
CTX_wm_window_set(C, nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* WITH_HEADLESS */
|
||||
|
||||
WM_cursor_wait(true);
|
||||
|
||||
/* first try to append data from exotic file formats... */
|
||||
@ -1067,6 +1097,7 @@ bool WM_file_read(bContext *C, const char *filepath, ReportList *reports)
|
||||
bf_reports.duration.whole = PIL_check_seconds_timer() - bf_reports.duration.whole;
|
||||
file_read_reports_finalize(&bf_reports);
|
||||
|
||||
WM_cursor_wait(true);
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
@ -1171,6 +1202,8 @@ void wm_homefile_read_ex(bContext *C,
|
||||
char filepath_startup[FILE_MAX];
|
||||
char filepath_userdef[FILE_MAX];
|
||||
|
||||
WM_cursor_wait(true);
|
||||
|
||||
/* When 'app_template' is set:
|
||||
* '{BLENDER_USER_CONFIG}/{app_template}' */
|
||||
char app_template_system[FILE_MAX];
|
||||
@ -1488,6 +1521,8 @@ void wm_homefile_read_ex(bContext *C,
|
||||
CTX_wm_window_set(C, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
WM_cursor_wait(false);
|
||||
}
|
||||
|
||||
void wm_homefile_read(bContext *C,
|
||||
|
Loading…
Reference in New Issue
Block a user