]> Dogcows Code - chaz/openbox/blobdiff - openbox/openbox.c
remove the event dispatcher
[chaz/openbox] / openbox / openbox.c
index 5c28fcf626d2c45f48c20df1b053a7103cc112fa..59ba762779005965f845304bb467822eb4e85937 100644 (file)
@@ -5,7 +5,6 @@
 #include "event.h"
 #include "menu.h"
 #include "client.h"
-#include "dispatch.h"
 #include "xerror.h"
 #include "prop.h"
 #include "startup.h"
@@ -66,7 +65,7 @@ static Cursor    cursors[OB_NUM_CURSORS];
 static KeyCode   keys[OB_NUM_KEYS];
 static gchar    *sm_save_file;
 
-static void signal_handler(const ObEvent *e, void *data);
+static void signal_handler(int signal);
 static void parse_args(int argc, char **argv);
 
 int main(int argc, char **argv)
@@ -90,13 +89,9 @@ int main(int argc, char **argv)
     bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
     textdomain(PACKAGE_NAME);
 
-    /* start our event dispatcher and register for signals */
-    dispatch_startup();
-    dispatch_register(Event_Signal, signal_handler, NULL);
-
     /* set up signal handler */
     sigemptyset(&sigset);
-    action.sa_handler = dispatch_signal;
+    action.sa_handler = signal_handler;
     action.sa_mask = sigset;
     action.sa_flags = SA_NOCLDSTOP | SA_NODEFER;
     sigaction(SIGUSR1, &action, (struct sigaction *) NULL);
@@ -235,6 +230,7 @@ int main(int argc, char **argv)
         if (parse_load_rc(&doc, &node))
             parse_tree(i, doc, node->xmlChildrenNode);
         /* we're done with parsing now, kill it */
+        xmlFreeDoc(doc);
         parse_shutdown(i);
 
         menu_parse();
@@ -267,6 +263,7 @@ int main(int argc, char **argv)
        client_unmanage_all();
 
         plugin_shutdown(); /* calls all the plugins' shutdown functions */
+        menu_shutdown();
         mouse_shutdown();
         keyboard_shutdown();
         dock_shutdown();
@@ -275,7 +272,6 @@ int main(int argc, char **argv)
        screen_shutdown();
        focus_shutdown();
         moveresize_shutdown();
-        menu_shutdown();
         window_shutdown();
         grab_shutdown();
        event_shutdown();
@@ -283,14 +279,16 @@ int main(int argc, char **argv)
         config_shutdown();
     }
 
-    dispatch_shutdown();
-
     RrThemeFree(ob_rr_theme);
     RrInstanceFree(ob_rr_inst);
 
     session_shutdown();
     g_free(ob_sm_id);
 
+#ifdef USE_LIBSN
+    sn_display_unref(ob_sn_display);
+#endif
+
     XCloseDisplay(ob_display);
 
     if (restart) {
@@ -316,12 +314,9 @@ int main(int argc, char **argv)
     return 0;
 }
 
-static void signal_handler(const ObEvent *e, void *data)
+static void signal_handler(int sig)
 {
-    int s;
-
-    s = e->data.s.signal;
-    switch (s) {
+    switch (sig) {
     case SIGUSR1:
        fprintf(stderr, "Caught SIGUSR1 signal. Restarting.");
         ob_restart();
@@ -331,13 +326,13 @@ static void signal_handler(const ObEvent *e, void *data)
     case SIGINT:
     case SIGTERM:
     case SIGPIPE:
-       fprintf(stderr, "Caught signal %d. Exiting.", s);
+       fprintf(stderr, "Caught signal %d. Exiting.", sig);
         ob_exit();
        break;
 
     case SIGFPE:
     case SIGSEGV:
-        fprintf(stderr, "Caught signal %d. Aborting and dumping core.", s);
+        fprintf(stderr, "Caught signal %d. Aborting and dumping core.", sig);
         abort();
     }
 }
This page took 0.022669 seconds and 4 git commands to generate.