summaryrefslogtreecommitdiff
path: root/gtk2_ardour/startup_fsm.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-11-06 16:32:46 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-11-06 16:32:46 -0700
commitd7b6d6e2c4cf5e3fe67120d8d754ded80a0191b1 (patch)
treeb5305ef45be11a937994d8a0c7a550edb1383817 /gtk2_ardour/startup_fsm.cc
parent6f4e838a58f2dc501eb506effdf9ea4d1203f46d (diff)
if user uses Ctrl/Cmd-w to close a dialog during startup, treat that as a request to exit
Diffstat (limited to 'gtk2_ardour/startup_fsm.cc')
-rw-r--r--gtk2_ardour/startup_fsm.cc13
1 files changed, 13 insertions, 0 deletions
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 <gtkmm2ext/doi.h>
+#include <gtkmm2ext/keyboard.h>
#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 ()
@@ -105,6 +108,16 @@ StartupFSM::~StartupFSM ()
}
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 ()
{
_signal_response (ExitProgram);