]> Dogcows Code - chaz/openbox/blobdiff - openbox/openbox.c
Handle STRING and COMPOUND_TEXT type text properties.
[chaz/openbox] / openbox / openbox.c
index b2cdc8efded4e8cb9d465af61042828c077c0912..9fd5fe40b451a188249ba6ca6af7416b2321e1df 100644 (file)
@@ -47,6 +47,7 @@
 #include "obrender/theme.h"
 #include "obt/display.h"
 #include "obt/xqueue.h"
+#include "obt/signal.h"
 #include "obt/prop.h"
 #include "obt/keyboard.h"
 #include "obt/xml.h"
@@ -117,6 +118,8 @@ gint main(gint argc, gchar **argv)
 {
     gchar *program_name;
 
+    obt_signal_listen();
+
     ob_set_state(OB_STATE_STARTING);
 
     ob_debug_startup();
@@ -160,16 +163,17 @@ gint main(gint argc, gchar **argv)
 
     ob_main_loop = g_main_loop_new(NULL, FALSE);
 
-    /* set up signal handler */
-//  obt_main_loop_signal_add(ob_main_loop, SIGUSR1, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGUSR2, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGTERM, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGINT, signal_handler,  NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGHUP, signal_handler,  NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGPIPE, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGCHLD, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGTTIN, signal_handler, NULL,NULL);
-//  obt_main_loop_signal_add(ob_main_loop, SIGTTOU, signal_handler, NULL,NULL);
+    /* set up signal handlers, they are called from the mainloop
+       in the main program's thread */
+    obt_signal_add_callback(SIGUSR1, signal_handler, NULL);
+    obt_signal_add_callback(SIGUSR2, signal_handler, NULL);
+    obt_signal_add_callback(SIGTERM, signal_handler, NULL);
+    obt_signal_add_callback(SIGINT,  signal_handler, NULL);
+    obt_signal_add_callback(SIGHUP,  signal_handler, NULL);
+    obt_signal_add_callback(SIGPIPE, signal_handler, NULL);
+    obt_signal_add_callback(SIGCHLD, signal_handler, NULL);
+    obt_signal_add_callback(SIGTTIN, signal_handler, NULL);
+    obt_signal_add_callback(SIGTTOU, signal_handler, NULL);
 
     ob_screen = DefaultScreen(obt_display);
 
@@ -254,8 +258,7 @@ gint main(gint argc, gchar **argv)
                     gchar *p = g_filename_to_utf8(config_file, -1,
                                                   NULL, NULL, NULL);
                     if (p)
-                        OBT_PROP_SETS(obt_root(ob_screen), OB_CONFIG_FILE,
-                                      utf8, p);
+                        OBT_PROP_SETS(obt_root(ob_screen), OB_CONFIG_FILE, p);
                     g_free(p);
                 }
                 else
@@ -282,8 +285,8 @@ gint main(gint argc, gchar **argv)
                 if (ob_rr_theme == NULL)
                     ob_exit_with_error(_("Unable to load a theme."));
 
-                OBT_PROP_SETS(obt_root(ob_screen),
-                              OB_THEME, utf8, ob_rr_theme->name);
+                OBT_PROP_SETS(obt_root(ob_screen), OB_THEME,
+                              ob_rr_theme->name);
             }
 
             if (reconfigure) {
@@ -420,6 +423,7 @@ gint main(gint argc, gchar **argv)
 
     if (restart) {
         ob_debug_shutdown();
+        obt_signal_stop();
         if (restart_path != NULL) {
             gint argcp;
             gchar **argvp;
@@ -473,8 +477,10 @@ gint main(gint argc, gchar **argv)
     g_free(ob_sm_id);
     g_free(program_name);
 
-    if (!restart)
+    if (!restart) {
         ob_debug_shutdown();
+        obt_signal_stop();
+    }
 
     return exitcode;
 }
This page took 0.022694 seconds and 4 git commands to generate.