From d7b6d6e2c4cf5e3fe67120d8d754ded80a0191b1 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 6 Nov 2019 16:32:46 -0700 Subject: if user uses Ctrl/Cmd-w to close a dialog during startup, treat that as a request to exit --- gtk2_ardour/startup_fsm.cc | 13 +++++++++++++ gtk2_ardour/startup_fsm.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/gtk2_ardour/startup_fsm.cc b/gtk2_ardour/startup_fsm.cc index 0a0dee3f37..5cf2c69ea8 100644 --- a/gtk2_ardour/startup_fsm.cc +++ b/gtk2_ardour/startup_fsm.cc @@ -41,6 +41,7 @@ #include "gtkmm2ext/application.h" #include +#include #include "ardour_ui.h" #include "debug.h" @@ -94,6 +95,8 @@ StartupFSM::StartupFSM (EngineControl& amd) app->ShouldQuit.connect (sigc::mem_fun (*this, &StartupFSM::queue_finish)); app->ShouldLoad.connect (sigc::mem_fun (*this, &StartupFSM::load_from_application_api)); + + Gtkmm2ext::Keyboard::HideMightMeanQuit.connect (sigc::mem_fun (*this, &StartupFSM::dialog_hidden)); } StartupFSM::~StartupFSM () @@ -104,6 +107,16 @@ StartupFSM::~StartupFSM () delete new_user_dialog; } +void +StartupFSM::dialog_hidden (Gtk::Window* /* ignored */) +{ + /* since this object only exists during startup, any attempt to close + * any dialog that we manage with Ctrl/Cmd-w is assumed to indicate a + * desire to quit on the part of the user. + */ + queue_finish (); +} + void StartupFSM::queue_finish () { diff --git a/gtk2_ardour/startup_fsm.h b/gtk2_ardour/startup_fsm.h index 54576ea2e8..ebdd7cba07 100644 --- a/gtk2_ardour/startup_fsm.h +++ b/gtk2_ardour/startup_fsm.h @@ -117,6 +117,8 @@ class StartupFSM : public sigc::trackable sigc::connection current_dialog_connection; sigc::signal1 _signal_response; + + void dialog_hidden (Gtk::Window*); }; #endif /* __gtk2_ardour_startup_fsm_h__ */ -- cgit v1.2.3