X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fopenbox.c;h=a2f9688d719b0743a727fc78076496e9a7aa2218;hb=1cacfa85d0e74386d071de0d910ab93e69ae40d3;hp=70b65e40d511eacf060fa4cf851589e62ae8b59c;hpb=bab8b41f5cdf24bc14d99030f69e6b08d293e583;p=chaz%2Fopenbox diff --git a/openbox/openbox.c b/openbox/openbox.c index 70b65e40..a2f9688d 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -26,6 +26,7 @@ # include #endif #ifdef HAVE_SIGNAL_H +#define __USE_UNIX98 # include #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(); } }