UI: change behavior for quit prompt
Remove confirmation popup menu, just exit. Note that this option is mainly for developers or people reviewing blend files, see D4406 for discussion on reason for keeping this feature while simplifying how it works.
This commit is contained in:
@@ -621,7 +621,7 @@ class TOPBAR_MT_file(Menu):
|
||||
layout.separator()
|
||||
|
||||
layout.operator_context = 'EXEC_AREA'
|
||||
if bpy.data.is_dirty and context.preferences.view.use_quit_dialog:
|
||||
if bpy.data.is_dirty:
|
||||
layout.operator_context = 'INVOKE_SCREEN' # quit dialog
|
||||
layout.operator("wm.quit_blender", text="Quit", icon='QUIT')
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -473,12 +473,17 @@ 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) {
|
||||
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);
|
||||
}
|
||||
|
||||
CTX_wm_window_set(C, win_ctx);
|
||||
}
|
||||
|
Reference in New Issue
Block a user