Ignore all reparents to the root window

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2010-08-11 11:56:47 +02:00
parent 9ab8cd4039
commit e59086f2bf
1 changed files with 7 additions and 1 deletions

View File

@ -748,8 +748,14 @@ event_handle_reparentnotify(xcb_reparent_notify_event_t *ev)
client_t *c; client_t *c;
if((c = client_getbywin(ev->window)) && c->frame_window != ev->parent) if((c = client_getbywin(ev->window)) && c->frame_window != ev->parent)
{
/* Ignore reparents to the root window, they *might* be caused by
* ourselves if a client quickly unmaps and maps itself again. */
xcb_screen_t *s = xutil_screen_get(globalconf.connection, c->phys_screen);
if (ev->parent != s->root)
client_unmanage(c); client_unmanage(c);
} }
}
/** \brief awesome xerror function. /** \brief awesome xerror function.
* There's no way to check accesses to destroyed windows, thus those cases are * There's no way to check accesses to destroyed windows, thus those cases are