[Goodies-commits] r5363 - in xfce4-mailwatch-plugin/trunk: . panel-plugin

Brian Tarricone kelnos at xfce.org
Sat Sep 6 07:42:21 CEST 2008


Author: kelnos
Date: 2008-09-06 05:42:21 +0000 (Sat, 06 Sep 2008)
New Revision: 5363

Modified:
   xfce4-mailwatch-plugin/trunk/configure.ac.in
   xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c
Log:
force mailbox update on SIGUSR2

Modified: xfce4-mailwatch-plugin/trunk/configure.ac.in
===================================================================
--- xfce4-mailwatch-plugin/trunk/configure.ac.in	2008-09-06 04:26:40 UTC (rev 5362)
+++ xfce4-mailwatch-plugin/trunk/configure.ac.in	2008-09-06 05:42:21 UTC (rev 5363)
@@ -66,6 +66,15 @@
 fi
 AM_CONDITIONAL([BUILD_42_PANEL_PLUGIN], [test "x$have_44_panel" != "xyes"])
 
+dnl see if we have a new enough libxfce4util for the posix signal handler stuff
+saved_CFLAGS="$CFLAGS"
+saved_LIBS="$LIBS"
+CFLAGS="$CFLAGS $LIBXFCE4UTIL_CFLAGS"
+LIBS="$LIBS $LIBXFCE4UTIL_LIBS"
+AC_CHECK_FUNCS([xfce_posix_signal_handler_init])
+CFLAGS="$saved_CFLAGS"
+LIBS="$saved_LIBS"
+
 dnl check for gnutls support
 XDT_CHECK_OPTIONAL_PACKAGE([GNUTLS], [gnutls], [1.2.0], [ssl],
 	[gnutls support for secure IMAP/POP3 connections], [yes])

Modified: xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c
===================================================================
--- xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c	2008-09-06 04:26:40 UTC (rev 5362)
+++ xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c	2008-09-06 05:42:21 UTC (rev 5363)
@@ -21,6 +21,10 @@
 #include <config.h>
 #endif
 
+#if defined(HAVE_SIGNAL_H) && defined(HAVE_XFCE_POSIX_SIGNAL_HANDLER_INIT)
+#include <signal.h>
+#endif
+
 #include <string.h>
 #include <stdlib.h>
 #include <gtk/gtk.h>
@@ -979,6 +983,10 @@
 {
     gint i;
 
+#ifdef HAVE_XFCE_POSIX_SIGNAL_HANDLER_INIT
+    xfce_posix_signal_handler_restore_handler(SIGUSR2);
+#endif
+
     if(mwp->about_dialog)
         gtk_widget_destroy(mwp->about_dialog);
     
@@ -1051,7 +1059,17 @@
         g_object_unref(G_OBJECT(icon));
 }
 
+#ifdef HAVE_XFCE_POSIX_SIGNAL_HANDLER_INIT
 static void
+mailwatch_handle_sigusr2(gint signal,
+                         gpointer user_data)
+{
+    XfceMailwatchPlugin *mwp = user_data;
+    xfce_mailwatch_force_update(mwp->mailwatch);
+}
+#endif
+
+static void
 mailwatch_construct(XfcePanelPlugin *plugin)
 {
     XfceMailwatchPlugin *mwp;
@@ -1064,6 +1082,21 @@
     
     mailwatch_read_config(plugin, mwp);
 
+#ifdef HAVE_XFCE_POSIX_SIGNAL_HANDLER_INIT
+    if(xfce_posix_signal_handler_init(NULL)) {
+        GError *error = NULL;
+
+        if(!xfce_posix_signal_handler_set_handler(SIGUSR2,
+                                                  mailwatch_handle_sigusr2,
+                                                  mwp, &error))
+        {
+            g_warning("Failed to set SIGUSR2 handler: %s", error->message);
+            g_error_free(error);
+        }
+    } else
+        g_warning("failed to init POSIX signal handler helper");
+#endif
+
     g_signal_connect(plugin, "free-data", 
                      G_CALLBACK(mailwatch_free), mwp);
     




More information about the Goodies-commits mailing list