*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
This commit is contained in:
parent
7797f8d318
commit
f71967bbca
1 changed files with 2 additions and 3 deletions
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue