From: Andreas Fink Date: Sun, 22 May 2011 08:25:40 +0000 (+0000) Subject: *fix* even better XSelectInput on traywindows. It's inside the block, where we listen... X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=a5cfbd4adca58f1c71a315d8afb2de82bf8ec6f3;p=chaz%2Ftint2 *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 --- 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) {