[Xfce4-commits] <xfce4-panel:master> Add some more checks in the 4.6 macro.

Nick Schermer noreply at xfce.org
Sun Mar 14 20:16:02 CET 2010


Updating branch refs/heads/master
         to 35e82f15d72109ec0c39d72035b7eab3134a29fc (commit)
       from 097baaf3c366822485774e9fa87289f0ce288719 (commit)

commit 35e82f15d72109ec0c39d72035b7eab3134a29fc
Author: Nick Schermer <nick at xfce.org>
Date:   Sun Mar 14 19:52:49 2010 +0100

    Add some more checks in the 4.6 macro.

 libxfce4panel/xfce-panel-macros-46.h |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/libxfce4panel/xfce-panel-macros-46.h b/libxfce4panel/xfce-panel-macros-46.h
index 6aac770..d36678e 100644
--- a/libxfce4panel/xfce-panel-macros-46.h
+++ b/libxfce4panel/xfce-panel-macros-46.h
@@ -356,12 +356,15 @@ enum /*< skip >*/
                         guint      message, \
                         GtkWidget *plug) \
   { \
-    GdkEventClient event; \
+    GdkEventClient  event; \
+    GdkWindow      *window; \
+    gint            result; \
     \
     g_return_if_fail (GTK_IS_PLUG (plug)); \
     g_return_if_fail (XFCE_IS_PANEL_PLUGIN (xpp)); \
     g_return_if_fail (GDK_IS_WINDOW (gtk_widget_get_window (plug))); \
     g_return_if_fail (_xpp_atom != GDK_NONE); \
+    g_return_if_fail (GTK_WIDGET_REALIZED (xpp)); \
     \
     event.type = GDK_CLIENT_EVENT; \
     event.window = gtk_widget_get_window (plug); \
@@ -371,12 +374,15 @@ enum /*< skip >*/
     event.data.s[0] = message; \
     event.data.s[1] = 0; \
     \
+    window = gtk_plug_get_socket_window (GTK_PLUG (plug)); \
+    g_return_if_fail (GDK_IS_WINDOW (window)); \
+    \
     gdk_error_trap_push (); \
-    gdk_event_send_client_message ((GdkEvent *) &event,  \
-        GDK_WINDOW_XID (gtk_plug_get_socket_window (GTK_PLUG (plug)))); \
+    gdk_event_send_client_message ((GdkEvent *) &event, GDK_WINDOW_XID (window)); \
     gdk_flush (); \
-    if (gdk_error_trap_pop () != 0) \
-      g_warning ("Failed to send provider-signal %d", message); \
+    result = gdk_error_trap_pop (); \
+    if (G_UNLIKELY (result != 0)) \
+      g_warning ("Failed to send provider-signal %d: X error code %d", message, result); \
   } \
   \
   static void \



More information about the Xfce4-commits mailing list