summaryrefslogtreecommitdiff
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
parent6f4e838a58f2dc501eb506effdf9ea4d1203f46d (diff)
if user uses Ctrl/Cmd-w to close a dialog during startup, treat that as a request to exit
-rw-r--r--gtk2_ardour/startup_fsm.cc13
-rw-r--r--gtk2_ardour/startup_fsm.h2
2 files changed, 15 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);
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<void,Result> _signal_response;
+
+ void dialog_hidden (Gtk::Window*);
};
#endif /* __gtk2_ardour_startup_fsm_h__ */