[Xfce4-commits] r26485 - in xfdesktop/trunk: . src

Brian Tarricone kelnos at xfce.org
Sun Dec 16 02:07:53 CET 2007


Author: kelnos
Date: 2007-12-16 01:07:53 +0000 (Sun, 16 Dec 2007)
New Revision: 26485

Modified:
   xfdesktop/trunk/configure.ac.in
   xfdesktop/trunk/src/main.c
Log:
* fix settings registration for menu and windowlist
* use new libxfce4util posix signal handler stuff


Modified: xfdesktop/trunk/configure.ac.in
===================================================================
--- xfdesktop/trunk/configure.ac.in	2007-12-16 00:18:02 UTC (rev 26484)
+++ xfdesktop/trunk/configure.ac.in	2007-12-16 01:07:53 UTC (rev 26485)
@@ -13,7 +13,7 @@
 
 dnl minimum required versions
 m4_define([gtk_minimum_version], [2.6.0])
-m4_define([xfce_minimum_version], [4.4.0])
+m4_define([xfce_minimum_version], [4.5.0svn-r26484])
 m4_define([xfce4menu_minimum_version], [0.1.0svn-r26163])
 m4_define([exo_minimum_version], [0.3.2])
 m4_define([thunar_minimum_version], [0.8.0])

Modified: xfdesktop/trunk/src/main.c
===================================================================
--- xfdesktop/trunk/src/main.c	2007-12-16 00:18:02 UTC (rev 26484)
+++ xfdesktop/trunk/src/main.c	2007-12-16 01:07:53 UTC (rev 26485)
@@ -200,19 +200,23 @@
 }
 
 static void
-sighandler_cb(int sig)
+xfdesktop_handle_SIGUSR1(gint signal,
+                         gpointer user_data)
 {
-    switch(sig) {
-        case SIGUSR1:
-            g_idle_add ((GSourceFunc)reload_idle_cb, NULL);
-            break;
-        
-        default:
-            gtk_main_quit();
-            break;
-    }
+    settings_reload_all();
+    menu_reload();
 }
 
+static void
+xfdesktop_handle_quit_signals(gint signal,
+                              gpointer user_data)
+{
+    gint main_level;
+    
+    for(main_level = gtk_main_level(); main_level > 0; --main_level)
+        gtk_main_quit();
+}
+
 int
 main(int argc, char **argv)
 {
@@ -224,6 +228,7 @@
     GtkSettings *settings;
     const gchar *message = NULL;
     gboolean already_running;
+    GError *error = NULL;
     
     /* bind gettext textdomain */
     xfce_textdomain(GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
@@ -373,14 +378,27 @@
     windowlist_set_show_icons(desktop_gtk_menu_images);
     
     if(mcs_client) {
-        settings_register_callback(menu_settings_changed, NULL);
-        settings_register_callback(windowlist_settings_changed, NULL);
+        settings_register_callback(menu_settings_changed, desktops[0]);
+        settings_register_callback(windowlist_settings_changed, desktops[0]);
     }
     
-    signal(SIGHUP, sighandler_cb);
-    signal(SIGINT, sighandler_cb);
-    signal(SIGTERM, sighandler_cb);
-    signal(SIGUSR1, sighandler_cb);
+    if(xfce_posix_signal_handler_init(&error)) {
+        xfce_posix_signal_handler_set_handler(SIGHUP,
+                                              xfdesktop_handle_quit_signals,
+                                              desktops, NULL);
+        xfce_posix_signal_handler_set_handler(SIGINT,
+                                              xfdesktop_handle_quit_signals,
+                                              desktops, NULL);
+        xfce_posix_signal_handler_set_handler(SIGTERM,
+                                              xfdesktop_handle_quit_signals,
+                                              desktops, NULL);
+        xfce_posix_signal_handler_set_handler(SIGUSR1,
+                                              xfdesktop_handle_SIGUSR1,
+                                              desktops, NULL);
+    } else {
+        g_warning("Unable to set up POSIX signal handlers: %s", error->message);
+        g_error_free(error);
+    }
     
     gtk_main();
     



More information about the Xfce4-commits mailing list