diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc index 0a4deddb75..2412395391 100644 --- a/gtk2_ardour/ardour_ui_startup.cc +++ b/gtk2_ardour/ardour_ui_startup.cc @@ -525,6 +525,7 @@ ARDOUR_UI::sfsm_response (StartupFSM::Result r) switch (r) { case StartupFSM::ExitProgram: { + /* failure mode */ std::stringstream str;; dump_errors (str, 10); std::string msg (string_compose (_("Something went seriously wrong. %1 cannot continue.\n\n" @@ -539,6 +540,11 @@ ARDOUR_UI::sfsm_response (StartupFSM::Result r) } break; + case StartupFSM::QuitProgram: + /* user explicitly requested quit */ + queue_finish (); + break; + case StartupFSM::LoadSession: if (load_session_from_startup_fsm () == 0) { diff --git a/gtk2_ardour/startup_fsm.cc b/gtk2_ardour/startup_fsm.cc index de01f60878..5aca97b5da 100644 --- a/gtk2_ardour/startup_fsm.cc +++ b/gtk2_ardour/startup_fsm.cc @@ -124,7 +124,7 @@ StartupFSM::dialog_hidden (Gtk::Window* /* ignored */) void StartupFSM::queue_finish () { - _signal_response (ExitProgram); + _signal_response (QuitProgram); } void @@ -232,7 +232,7 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i show_session_dialog (new_session_required); break; default: - _signal_response (ExitProgram); + _signal_response (QuitProgram); } default: /* ERROR */ @@ -266,7 +266,7 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i break; default: - _signal_response (ExitProgram); + _signal_response (QuitProgram); break; } break; @@ -300,7 +300,7 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i } break; default: - _signal_response (ExitProgram); + _signal_response (QuitProgram); } break; default: @@ -336,7 +336,7 @@ StartupFSM::dialog_response_handler (int response, StartupFSM::DialogID dialog_i } break; default: - _signal_response (ExitProgram); + _signal_response (QuitProgram); break; } default: diff --git a/gtk2_ardour/startup_fsm.h b/gtk2_ardour/startup_fsm.h index 7003e234d7..e692a87074 100644 --- a/gtk2_ardour/startup_fsm.h +++ b/gtk2_ardour/startup_fsm.h @@ -46,6 +46,7 @@ class StartupFSM : public sigc::trackable enum Result { LoadSession, ExitProgram, + QuitProgram, }; enum MainState {