[Xfce4-commits] <xfce4-notifyd:master> Don't update the placement data if it was never initialized.

Jérôme Guelfucci noreply at xfce.org
Thu Dec 9 13:28:01 CET 2010


Updating branch refs/heads/master
         to c7b151d2b9023085a4a28305c06d10406bb49120 (commit)
       from cf98de3625a0a47220b0d950b3eec21e88b30891 (commit)

commit c7b151d2b9023085a4a28305c06d10406bb49120
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date:   Thu Dec 9 13:20:24 2010 +0100

    Don't update the placement data if it was never initialized.

 xfce4-notifyd/xfce-notify-daemon.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/xfce4-notifyd/xfce-notify-daemon.c b/xfce4-notifyd/xfce-notify-daemon.c
index c54358b..710995b 100644
--- a/xfce4-notifyd/xfce-notify-daemon.c
+++ b/xfce4-notifyd/xfce-notify-daemon.c
@@ -213,7 +213,8 @@ xfce_notify_rootwin_watch_workarea(GdkXEvent *gxevent,
     XPropertyEvent *xevt = (XPropertyEvent *)gxevent;
 
     if(xevt->type == PropertyNotify
-       && XInternAtom(xevt->display, "_NET_WORKAREA", False) == xevt->atom)
+       && XInternAtom(xevt->display, "_NET_WORKAREA", False) == xevt->atom
+       && xndaemon->monitors_workarea)
     {
         GdkScreen *screen = gdk_event_get_screen(event);
         int screen_number = gdk_screen_get_number (screen);
@@ -236,12 +237,20 @@ xfce_notify_daemon_screen_changed(GdkScreen *screen,
 {
     XfceNotifyDaemon *xndaemon = XFCE_NOTIFY_DAEMON(user_data);
     gint j;
-    gint new_nmonitor = gdk_screen_get_n_monitors(screen);
-    gint screen_number = gdk_screen_get_number(screen);
-    gint old_nmonitor = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(screen), XND_N_MONITORS));
+    gint new_nmonitor;
+    gint screen_number;
+    gint old_nmonitor;
+
+    if(!xndaemon->monitors_workarea || !xndaemon->reserved_rectangles)
+        /* Placement data not initialized, don't update it */
+        return;
 
     DBG("Got 'screen-changed' signal for screen %d", screen_number);
 
+    new_nmonitor = gdk_screen_get_n_monitors(screen);
+    screen_number = gdk_screen_get_number(screen);
+    old_nmonitor = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(screen), XND_N_MONITORS));
+
     /* Set the new number of monitors */
     g_object_set_qdata(G_OBJECT(screen), XND_N_MONITORS, GINT_TO_POINTER(new_nmonitor));
 
@@ -312,6 +321,9 @@ xfce_notify_daemon_init(XfceNotifyDaemon *xndaemon)
                                                    (GDestroyNotify)gtk_widget_destroy);
     xndaemon->last_notification_id = 1;
 
+    xndaemon->reserved_rectangles = NULL;
+    xndaemon->monitors_workarea = NULL;
+
     xndaemon->close_timeout =
         g_timeout_add_seconds(600, (GSourceFunc) xfce_notify_daemon_close_timeout,
                               xndaemon);



More information about the Xfce4-commits mailing list