]> Dogcows Code - chaz/openbox/blobdiff - openbox/openbox.c
add some comments and asserts to make sure I don't ever add this bug again
[chaz/openbox] / openbox / openbox.c
index 70b65e40d511eacf060fa4cf851589e62ae8b59c..a2f9688d719b0743a727fc78076496e9a7aa2218 100644 (file)
@@ -26,6 +26,7 @@
 #  include <fcntl.h>
 #endif
 #ifdef HAVE_SIGNAL_H
+#define __USE_UNIX98
 #  include <signal.h>
 #endif
 #ifdef HAVE_STDLIB_H
@@ -108,10 +109,10 @@ int main(int argc, char **argv)
     sigemptyset(&sigset);
     action.sa_handler = dispatch_signal;
     action.sa_mask = sigset;
-    action.sa_flags = SA_NOCLDSTOP;
+    action.sa_flags = SA_NOCLDSTOP | SA_NODEFER;
     sigaction(SIGUSR1, &action, (struct sigaction *) NULL);
     sigaction(SIGPIPE, &action, (struct sigaction *) NULL);
-    sigaction(SIGSEGV, &action, (struct sigaction *) NULL);
+/*    sigaction(SIGSEGV, &action, (struct sigaction *) NULL);*/
     sigaction(SIGFPE, &action, (struct sigaction *) NULL);
     sigaction(SIGTERM, &action, (struct sigaction *) NULL);
     sigaction(SIGINT, &action, (struct sigaction *) NULL);
@@ -127,6 +128,8 @@ int main(int argc, char **argv)
     mkdir(path, (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP |
                  S_IROTH | S_IWOTH | S_IXOTH));
     g_free(path);
+
+    g_set_prgname(argv[0]);
      
     /* parse out command line args */
     parse_args(argc, argv);
@@ -194,12 +197,17 @@ int main(int argc, char **argv)
        timer_startup();
        event_startup();
         grab_startup();
+        /* focus_backup is used for stacking, so this needs to come before
+           anything that calls stacking_add */
+       focus_startup();
+        window_startup();
         plugin_startup();
         /* load the plugins specified in the pluginrc */
         plugin_loadall();
 
         /* set up the kernel config shit */
         config_startup();
+        menu_startup();
         /* parse/load user options */
         if (parse_load_rc(&doc, &node))
             parse_tree(doc, node->xmlChildrenNode, NULL);
@@ -211,11 +219,8 @@ int main(int argc, char **argv)
         if (ob_rr_theme == NULL)
             exit_with_error("Unable to load a theme.");
 
-        window_startup();
-        menu_startup();
         frame_startup();
         moveresize_startup();
-       focus_startup();
        screen_startup();
         group_startup();
        client_startup();
@@ -440,7 +445,7 @@ static void signal_handler(const ObEvent *e, void *data)
     s = e->data.s.signal;
     switch (s) {
     case SIGUSR1:
-       g_message("Caught SIGUSR1 signal. Restarting.");
+       fprintf(stderr, "Caught SIGUSR1 signal. Restarting.");
        ob_shutdown = ob_restart = TRUE;
        break;
 
@@ -448,13 +453,13 @@ static void signal_handler(const ObEvent *e, void *data)
     case SIGINT:
     case SIGTERM:
     case SIGPIPE:
-       g_message("Caught signal %d. Exiting.", s);
+       fprintf(stderr, "Caught signal %d. Exiting.", s);
        ob_shutdown = TRUE;
        break;
 
     case SIGFPE:
     case SIGSEGV:
-       g_message("Caught signal %d. Aborting and dumping core.", s);
+        fprintf(stderr, "Caught signal %d. Aborting and dumping core.", s);
         abort();
     }
 }
This page took 0.023637 seconds and 4 git commands to generate.