]> git.sur5r.net Git - i3/i3/commitdiff
add a flag to disable the signalhandler
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Jan 2011 23:31:26 +0000 (00:31 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Jan 2011 23:31:26 +0000 (00:31 +0100)
src/main.c

index 5736324fd15513fe398a6fc57b80ec97eff67a75..27603357fb8e24eac5534319fe9bf8d195eafd02 100644 (file)
@@ -148,6 +148,7 @@ int main(int argc, char *argv[]) {
     bool delete_layout_path;
     bool only_check_config = false;
     bool force_xinerama = false;
+    bool disable_signalhandler = false;
     xcb_intern_atom_cookie_t atom_cookies[NUM_ATOMS];
     static struct option long_options[] = {
         {"no-autostart", no_argument, 0, 'a'},
@@ -157,6 +158,7 @@ int main(int argc, char *argv[]) {
         {"layout", required_argument, 0, 'L'},
         {"restart", required_argument, 0, 0},
         {"force-xinerama", no_argument, 0, 0},
+        {"disable-signalhandler", no_argument, 0, 0},
         {0, 0, 0, 0}
     };
     int option_index = 0, opt;
@@ -189,7 +191,7 @@ int main(int argc, char *argv[]) {
                 only_check_config = true;
                 break;
             case 'v':
-                printf("i3 version " I3_VERSION " © 2009 Michael Stapelberg and contributors\n");
+                printf("i3 version " I3_VERSION " © 2009-2011 Michael Stapelberg and contributors\n");
                 exit(EXIT_SUCCESS);
             case 'V':
                 set_verbosity(true);
@@ -210,6 +212,9 @@ int main(int argc, char *argv[]) {
                          "Please check if your driver really does not support RandR "
                          "and disable this option as soon as you can.\n");
                     break;
+                } else if (strcmp(long_options[option_index].name, "disable-signalhandler") == 0) {
+                    disable_signalhandler = true;
+                    break;
                 } else if (strcmp(long_options[option_index].name, "restart") == 0) {
                     FREE(layout_path);
                     layout_path = sstrdup(optarg);
@@ -494,7 +499,8 @@ int main(int argc, char *argv[]) {
 
     manage_existing_windows(root);
 
-    setup_signal_handler();
+    if (!disable_signalhandler)
+        setup_signal_handler();
 
     /* Ignore SIGPIPE to survive errors when an IPC client disconnects
      * while we are sending him a message */