[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