Handle _NET_WM_DESKTOP more intelligently
This makes sure that an invalid value for this property doesn't cause the client to have no tag at all. This should be especially useful when one uses dynamic tags and restarts awesome which causes less tags to exist than before. Signed-off-by: Uli Schlachter <psychon@znc.in> Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
6d0111264d
commit
b296778185
9
ewmh.c
9
ewmh.c
|
@ -502,7 +502,7 @@ ewmh_client_check_hints(client_t *c)
|
|||
desktop = *(uint32_t *) data;
|
||||
if(desktop == -1)
|
||||
c->sticky = true;
|
||||
else
|
||||
else if (desktop >= 0 && desktop < tags->len)
|
||||
for(int i = 0; i < tags->len; i++)
|
||||
if(desktop == i)
|
||||
{
|
||||
|
@ -511,6 +511,13 @@ ewmh_client_check_hints(client_t *c)
|
|||
}
|
||||
else
|
||||
untag_client(c, tags->tab[i]);
|
||||
else
|
||||
/* Value out of bounds, just give it the first tag */
|
||||
if (tags->len > 0)
|
||||
{
|
||||
luaA_object_push(globalconf.L, tags->tab[0]);
|
||||
tag_client(c);
|
||||
}
|
||||
}
|
||||
|
||||
p_delete(&reply);
|
||||
|
|
Loading…
Reference in New Issue