WM: don't skip AutoSave if modal operator is 'fileselect' #107555
|
@ -2083,6 +2083,11 @@ void wm_autosave_timer(Main *bmain, wmWindowManager *wm, wmTimer * /*wt*/)
|
|||
LISTBASE_FOREACH (wmEventHandler *, handler_base, &win->modalhandlers) {
|
||||
if (handler_base->type == WM_HANDLER_TYPE_OP) {
|
||||
wmEventHandler_Op *handler = (wmEventHandler_Op *)handler_base;
|
||||
if (handler->is_fileselect) {
|
||||
/* Skip the file selection handle because, as a non-blocking operator, the user can keep
|
||||
* its window open longer than is convenient for Auto-Save. */
|
||||
continue;
|
||||
}
|
||||
if (handler->op) {
|
||||
wm_autosave_timer_begin_ex(wm, 0.01);
|
||||
return;
|
||||
|
@ -3039,7 +3044,8 @@ static int wm_recover_last_session_invoke(bContext *C, wmOperator *op, const wmE
|
|||
wm_open_init_use_scripts(op, false);
|
||||
|
||||
if (wm_operator_close_file_dialog_if_needed(
|
||||
C, op, wm_recover_last_session_after_dialog_callback)) {
|
||||
C, op, wm_recover_last_session_after_dialog_callback))
|
||||
{
|
||||
return OPERATOR_INTERFACE;
|
||||
}
|
||||
return wm_recover_last_session_exec(C, op);
|
||||
|
|
Loading…
Reference in New Issue