client: check tags even after transient/group tag copy (FS#434)
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
ae6a598911
commit
6c963a6eed
28
client.c
28
client.c
|
@ -564,21 +564,23 @@ client_manage(xcb_window_t w, xcb_get_geometry_reply_t *wgeom, int phys_screen,
|
||||||
client_duplicate_tags(tc, c);
|
client_duplicate_tags(tc, c);
|
||||||
else if (group)
|
else if (group)
|
||||||
client_duplicate_tags(group, c);
|
client_duplicate_tags(group, c);
|
||||||
else
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
tag_array_t *tags = &globalconf.screens[screen].tags;
|
|
||||||
for(i = 0; i < tags->len; i++)
|
|
||||||
if(is_client_tagged(c, tags->tab[i]))
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* if no tag, set current selected */
|
/* Now check that client is tagged.
|
||||||
if(i == tags->len)
|
* It can still has no tag, since the transient_for clients or the group
|
||||||
for(i = 0; i < tags->len; i++)
|
* client can be sticky. */
|
||||||
if(tags->tab[i]->selected)
|
|
||||||
tag_client(c, tags->tab[i]);
|
int i;
|
||||||
|
tag_array_t *tags = &globalconf.screens[screen].tags;
|
||||||
|
for(i = 0; i < tags->len; i++)
|
||||||
|
if(is_client_tagged(c, tags->tab[i]))
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* if no tag, set current selected */
|
||||||
|
if(i == tags->len)
|
||||||
|
for(i = 0; i < tags->len; i++)
|
||||||
|
if(tags->tab[i]->selected)
|
||||||
|
tag_client(c, tags->tab[i]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Push client in client list */
|
/* Push client in client list */
|
||||||
client_list_push(&globalconf.clients, client_ref(&c));
|
client_list_push(&globalconf.clients, client_ref(&c));
|
||||||
|
|
Loading…
Reference in New Issue