diff options
author | Javier <dev.git@javispedro.com> | 2016-08-07 00:08:06 +0200 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2016-08-07 00:21:26 +0200 |
commit | ca2d031cddf6948f646a67305619e556c4986f61 (patch) | |
tree | 9c0aebbe326a9bae52f52d62a15d4758a8857207 /libtopmenu-client/topmenu-monitor.c | |
parent | 8e366dc6d198d4942a036f42df5074f97a6d206b (diff) | |
download | topmenu-gtk-ca2d031cddf6948f646a67305619e556c4986f61.tar.gz topmenu-gtk-ca2d031cddf6948f646a67305619e556c4986f61.zip |
fix potential client crash after applet crash
Diffstat (limited to 'libtopmenu-client/topmenu-monitor.c')
-rw-r--r-- | libtopmenu-client/topmenu-monitor.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libtopmenu-client/topmenu-monitor.c b/libtopmenu-client/topmenu-monitor.c index c67e3cd..915bc47 100644 --- a/libtopmenu-client/topmenu-monitor.c +++ b/libtopmenu-client/topmenu-monitor.c @@ -55,10 +55,10 @@ static GdkFilterReturn handle_cur_server_event(GdkXEvent *xevent, GdkEvent *even { XEvent *e = (XEvent*)xevent; if (e->type == DestroyNotify) { - g_debug("Current server has been destroyed"); TopMenuMonitor *self = TOPMENU_MONITOR(data); if (self->priv->cur_server && GDK_WINDOW_XID(self->priv->cur_server) == e->xdestroywindow.window) { + g_debug("Current server has been destroyed"); topmenu_monitor_update(self); } } @@ -71,13 +71,14 @@ static void topmenu_monitor_set_cur_server(TopMenuMonitor *self, GdkWindow *wind // Nothing to do return; } - g_debug("Setting current server to 0x%lx", GDK_WINDOW_XID(window)); if (self->priv->cur_server) { + g_debug("Removing current server"); gdk_window_remove_filter(window, handle_cur_server_event, self); g_object_unref(self->priv->cur_server); self->priv->cur_server = 0; } if (window) { + g_debug("Setting current server to 0x%lx", GDK_WINDOW_XID(window)); gdk_window_set_events(window, gdk_window_get_events(window) | GDK_STRUCTURE_MASK); gdk_window_add_filter(window, handle_cur_server_event, self); self->priv->cur_server = window; |