42 lines
1 KiB
Diff
42 lines
1 KiB
Diff
From 7bda4bd9c705413598ee9b534884bc7f23704932 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Jaeger <ThJaeger@gmail.com>
|
|
Date: Thu, 20 Jun 2013 01:45:20 -0400
|
|
Subject: Reinstate signal handlers that got lost in the gtk3 transition
|
|
|
|
Also, fix a segfault when handling SIGINT.
|
|
---
|
|
main.cc | 11 ++++++++++-
|
|
1 file changed, 10 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/main.cc b/main.cc
|
|
index 55d0b3c..8cd9c56 100644
|
|
--- a/main.cc
|
|
+++ b/main.cc
|
|
@@ -161,7 +161,12 @@ void quit() {
|
|
xstate->bail_out();
|
|
dead = true;
|
|
win->hide();
|
|
- xstate->queue(sigc::ptr_fun(&Gtk::Main::quit));
|
|
+ Glib::RefPtr<Gio::Application> app = Gio::Application::get_default();
|
|
+ xstate->queue(sigc::mem_fun(*app.operator->(), &Gio::Application::quit));
|
|
+}
|
|
+
|
|
+void sig_int(int) {
|
|
+ quit();
|
|
}
|
|
|
|
class App : public Gtk::Application, Base {
|
|
@@ -371,6 +376,10 @@ void App::on_activate() {
|
|
|
|
create_config_dir();
|
|
unsetenv("DESKTOP_AUTOSTART_ID");
|
|
+
|
|
+ signal(SIGINT, &sig_int);
|
|
+ signal(SIGCHLD, SIG_IGN);
|
|
+
|
|
dpy = XOpenDisplay(NULL);
|
|
if (!dpy) {
|
|
printf(_("Couldn't open display.\n"));
|
|
--
|
|
1.8.4
|
|
|