From f71967bbcaf15e3e77e237e4aef0cdd084c1a784 Mon Sep 17 00:00:00 2001 From: "andreas.fink85" Date: Sun, 22 May 2011 08:25:40 +0000 Subject: [PATCH] *fix* even better XSelectInput on traywindows. It's inside the block, where we listen to XError's, thus an icon which is already deleted before we ask for StuctureNotify will not be added at all git-svn-id: http://tint2.googlecode.com/svn/trunk@630 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- src/systray/systraybar.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/systray/systraybar.c b/src/systray/systraybar.c index 8a92a04..e7e413f 100644 --- a/src/systray/systraybar.c +++ b/src/systray/systraybar.c @@ -354,9 +354,6 @@ gboolean add_icon(Window id) Panel *panel = systray.area.panel; int hide = 0; - // watch for the icon trying to resize itself / closing again! - XSelectInput(server.dsp, id, StructureNotifyMask); - error = FALSE; XWindowAttributes attr; if ( XGetWindowAttributes(server.dsp, id, &attr) == False ) return FALSE; @@ -380,6 +377,8 @@ gboolean add_icon(Window id) parent_window = XCreateWindow(server.dsp, panel->main_win, 0, 0, 30, 30, 0, attr.depth, InputOutput, visual, mask, &set_attr); old = XSetErrorHandler(window_error_handler); XReparentWindow(server.dsp, id, parent_window, 0, 0); + // watch for the icon trying to resize itself / closing again! + XSelectInput(server.dsp, id, StructureNotifyMask); XSync(server.dsp, False); XSetErrorHandler(old); if (error != FALSE) {