wibox: reparent systray only if needed (FS#436)

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2009-01-30 16:13:34 +01:00
parent 2406fe3e4d
commit 7a4bd63b0d
1 changed files with 10 additions and 7 deletions

17
wibox.c
View File

@ -101,14 +101,17 @@ wibox_systray_kickout(int phys_screen)
{
xcb_screen_t *s = xutil_screen_get(globalconf.connection, phys_screen);
/* Who! Check that we're not deleting a wibox with a systray, because it
* may be its parent. If so, we reparent to root before, otherwise it will
* hurt very much. */
xcb_reparent_window(globalconf.connection,
globalconf.screens[phys_screen].systray.window,
s->root, -512, -512);
if(globalconf.screens[phys_screen].systray.parent != s->root)
{
/* Who! Check that we're not deleting a wibox with a systray, because it
* may be its parent. If so, we reparent to root before, otherwise it will
* hurt very much. */
xcb_reparent_window(globalconf.connection,
globalconf.screens[phys_screen].systray.window,
s->root, -512, -512);
globalconf.screens[phys_screen].systray.parent = s->root;
globalconf.screens[phys_screen].systray.parent = s->root;
}
}
static void