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
65dfdf01ce
commit
e291c03982
9
ewmh.c
9
ewmh.c
|
@ -529,7 +529,7 @@ ewmh_client_check_hints(client_t *c)
|
||||||
desktop = *(uint32_t *) data;
|
desktop = *(uint32_t *) data;
|
||||||
if(desktop == -1)
|
if(desktop == -1)
|
||||||
c->sticky = true;
|
c->sticky = true;
|
||||||
else
|
else if (desktop >= 0 && desktop < tags->len)
|
||||||
for(int i = 0; i < tags->len; i++)
|
for(int i = 0; i < tags->len; i++)
|
||||||
if(desktop == i)
|
if(desktop == i)
|
||||||
{
|
{
|
||||||
|
@ -538,6 +538,13 @@ ewmh_client_check_hints(client_t *c)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
untag_client(c, tags->tab[i]);
|
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);
|
p_delete(&reply);
|
||||||
|
|
Loading…
Reference in New Issue