JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
bar shows if currently is tiled (Mod1-space) or floating (Mod1-Shift-space) mode
[dwm.git] / client.c
index e3e31b6..5b666c9 100644 (file)
--- 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;
@@ -118,6 +120,7 @@ floating(Arg *arg)
                        focus(sel);
                }
        }
+       draw_bar();
 }
 
 void
@@ -174,6 +177,7 @@ tiling(Arg *arg)
                        focus(sel);
                }
        }
+       draw_bar();
 }
 
 void
@@ -497,6 +501,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)