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) {
|
LISTBASE_FOREACH (wmEventHandler *, handler_base, &win->modalhandlers) {
|
||||||
if (handler_base->type == WM_HANDLER_TYPE_OP) {
|
if (handler_base->type == WM_HANDLER_TYPE_OP) {
|
||||||
wmEventHandler_Op *handler = (wmEventHandler_Op *)handler_base;
|
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) {
|
if (handler->op) {
|
||||||
wm_autosave_timer_begin_ex(wm, 0.01);
|
wm_autosave_timer_begin_ex(wm, 0.01);
|
||||||
return;
|
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);
|
wm_open_init_use_scripts(op, false);
|
||||||
|
|
||||||
if (wm_operator_close_file_dialog_if_needed(
|
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 OPERATOR_INTERFACE;
|
||||||
}
|
}
|
||||||
return wm_recover_last_session_exec(C, op);
|
return wm_recover_last_session_exec(C, op);
|
||||||
|
|
Loading…
Reference in New Issue