aboutsummaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@wmii.de>2006-07-14 18:11:36 +0200
committerAnselm R. Garbe <garbeam@wmii.de>2006-07-14 18:11:36 +0200
commit6797ff84ae00d8039aa897d8b713ccdb771cd336 (patch)
tree2fcbdc12321f9bc483f6ab462c03896a44536943 /client.c
parente7fa504c3e095db65853afd39d2d1324d439dcf4 (diff)
downloaddwm-6797ff84ae00d8039aa897d8b713ccdb771cd336.tar.gz
fixed crash on zoom if only 1 client exists
Diffstat (limited to 'client.c')
-rw-r--r--client.c12
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)
remember that computers suck.