dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 6797ff84ae00d8039aa897d8b713ccdb771cd336
parent e7fa504c3e095db65853afd39d2d1324d439dcf4
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Fri, 14 Jul 2006 18:11:36 +0200

fixed crash on zoom if only 1 client exists

Diffstat:
Mclient.c | 12+++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git 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)