diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 9 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_window.c | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index bafcdbf2139..55c257038ad 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1804,18 +1804,19 @@ static void WM_OT_window_fullscreen_toggle(wmOperatorType *ot) static int wm_exit_blender_exec(bContext *C, wmOperator *UNUSED(op)) { - wm_quit_with_optional_confirmation_prompt(C, CTX_wm_window(C)); + wm_exit_schedule_delayed(C); return OPERATOR_FINISHED; } -static int wm_exit_blender_invoke(bContext *C, wmOperator *op, const wmEvent *event) +static int wm_exit_blender_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *UNUSED(event)) { if (U.uiflag & USER_QUIT_PROMPT) { - return wm_exit_blender_exec(C, op); + wm_quit_with_optional_confirmation_prompt(C, CTX_wm_window(C)); } else { - return WM_operator_confirm(C, op, event); + wm_exit_schedule_delayed(C); } + return OPERATOR_FINISHED; } static void WM_OT_quit_blender(wmOperatorType *ot) diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c index c432dce0757..f41ac7807e2 100644 --- a/source/blender/windowmanager/intern/wm_window.c +++ b/source/blender/windowmanager/intern/wm_window.c @@ -473,8 +473,13 @@ void wm_quit_with_optional_confirmation_prompt(bContext *C, wmWindow *win) * here (this function gets called outside of normal event handling loop). */ CTX_wm_window_set(C, win); - if ((U.uiflag & USER_QUIT_PROMPT) && !wm->file_saved && !G.background) { - wm_confirm_quit(C); + if (U.uiflag & USER_QUIT_PROMPT) { + if (!wm->file_saved && !G.background) { + wm_confirm_quit(C); + } + else { + wm_exit_schedule_delayed(C); + } } else { wm_exit_schedule_delayed(C); |