dwm-meillo
diff client.c @ 67:a0272d97ec7c
fixed crash on zoom if only 1 client exists
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Fri, 14 Jul 2006 18:11:36 +0200 |
parents | 50450aa24a46 |
children | 7681ef838201 |
line diff
1.1 --- a/client.c Fri Jul 14 17:43:56 2006 +0200 1.2 +++ b/client.c Fri Jul 14 18:11:36 2006 +0200 1.3 @@ -28,13 +28,15 @@ 1.4 void 1.5 zoom(Arg *arg) 1.6 { 1.7 - Client **l; 1.8 + Client **l, *c; 1.9 1.10 if(!sel) 1.11 return; 1.12 1.13 - if(sel == next(clients)) 1.14 - sel = next(sel->next); 1.15 + if(sel == next(clients) && sel->next) { 1.16 + if((c = next(sel->next))) 1.17 + sel = c; 1.18 + } 1.19 1.20 for(l = &clients; *l && *l != sel; l = &(*l)->next); 1.21 *l = sel->next; 1.22 @@ -497,6 +499,10 @@ 1.23 if(c->inch) 1.24 c->h -= (c->h - c->baseh) % c->inch; 1.25 } 1.26 + if(c->x > sw) /* might happen on restart */ 1.27 + c->x = sw - c->w; 1.28 + if(c->y > sh) 1.29 + c->ty = c->y = sh - c->h; 1.30 if(c->minw && c->w < c->minw) 1.31 c->w = c->minw; 1.32 if(c->minh && c->h < c->minh)