[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