event: only map if the client is visible

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2008-06-28 11:47:29 +02:00
parent 2af9121ca2
commit e1e12f4c0a
1 changed files with 6 additions and 11 deletions

11
event.c
View File

@ -445,18 +445,13 @@ event_handle_maprequest(void *data __attribute__ ((unused)),
} }
else if((c = client_getbywin(ev->window))) else if((c = client_getbywin(ev->window)))
{ {
tag_array_t *tags = &globalconf.screens[c->screen].tags; if(client_isvisible(c, c->screen))
{
xcb_map_window(globalconf.connection, ev->window); xcb_map_window(globalconf.connection, ev->window);
/* add tags currently shown */
for(int i = 0; i < tags->len; i++)
if(tags->tab[i]->selected)
tag_client(c, tags->tab[i]);
/* it will be raised, so just update ourself */ /* it will be raised, so just update ourself */
client_raise(c); client_raise(c);
} }
}
else else
{ {
geom_c = xcb_get_geometry_unchecked(connection, ev->window); geom_c = xcb_get_geometry_unchecked(connection, ev->window);