diff options
author | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-14 18:11:36 +0200 |
---|---|---|
committer | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-14 18:11:36 +0200 |
commit | 6797ff84ae00d8039aa897d8b713ccdb771cd336 (patch) | |
tree | 2fcbdc12321f9bc483f6ab462c03896a44536943 /client.c | |
parent | e7fa504c3e095db65853afd39d2d1324d439dcf4 (diff) | |
download | dwm-6797ff84ae00d8039aa897d8b713ccdb771cd336.tar.gz |
fixed crash on zoom if only 1 client exists
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/client.c b/client.c index e3e31b6..487cb0c 100644 --- a/client.c +++ b/client.c @@ -28,13 +28,15 @@ next(Client *c) void zoom(Arg *arg) { - Client **l; + Client **l, *c; if(!sel) return; - if(sel == next(clients)) - sel = next(sel->next); + if(sel == next(clients) && sel->next) { + if((c = next(sel->next))) + sel = c; + } for(l = &clients; *l && *l != sel; l = &(*l)->next); *l = sel->next; @@ -497,6 +499,10 @@ resize(Client *c, Bool inc) if(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) c->w = c->minw; if(c->minh && c->h < c->minh) |