forked from mirror/dwm
fixed crash on zoom if only 1 client exists
This commit is contained in:
parent
e7fa504c3e
commit
6797ff84ae
1 changed files with 9 additions and 3 deletions
12
client.c
12
client.c
|
@ -28,13 +28,15 @@ next(Client *c)
|
||||||
void
|
void
|
||||||
zoom(Arg *arg)
|
zoom(Arg *arg)
|
||||||
{
|
{
|
||||||
Client **l;
|
Client **l, *c;
|
||||||
|
|
||||||
if(!sel)
|
if(!sel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(sel == next(clients))
|
if(sel == next(clients) && sel->next) {
|
||||||
sel = next(sel->next);
|
if((c = next(sel->next)))
|
||||||
|
sel = c;
|
||||||
|
}
|
||||||
|
|
||||||
for(l = &clients; *l && *l != sel; l = &(*l)->next);
|
for(l = &clients; *l && *l != sel; l = &(*l)->next);
|
||||||
*l = sel->next;
|
*l = sel->next;
|
||||||
|
@ -497,6 +499,10 @@ resize(Client *c, Bool inc)
|
||||||
if(c->inch)
|
if(c->inch)
|
||||||
c->h -= (c->h - c->baseh) % c->inch;
|
c->h -= (c->h - c->baseh) % c->inch;
|
||||||
}
|
}
|
||||||
|
if(c->x > sw) /* might happen on restart */
|
||||||
|
c->x = sw - c->w;
|
||||||
|
if(c->y > sh)
|
||||||
|
c->ty = c->y = sh - c->h;
|
||||||
if(c->minw && c->w < c->minw)
|
if(c->minw && c->w < c->minw)
|
||||||
c->w = c->minw;
|
c->w = c->minw;
|
||||||
if(c->minh && c->h < c->minh)
|
if(c->minh && c->h < c->minh)
|
||||||
|
|
Loading…
Reference in a new issue