JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
applied jukkas patch
[dwm.git] / view.c
diff --git a/view.c b/view.c
index 5667134..c5e942d 100644 (file)
--- a/view.c
+++ b/view.c
@@ -45,17 +45,18 @@ reorder() {
 static void
 togglemax(Client *c)
 {
+       XEvent ev;
        if((c->ismax = !c->ismax)) {
                c->rx = c->x; c->x = sx;
                c->ry = c->y; c->y = bh;
                c->rw = c->w; c->w = sw;
-               c->rh = c->h; c->h = sh;
+               c->rh = c->h; c->h = sh - bh;
        }
        else {
                c->x = c->rx;
                c->y = c->ry;
-               c->w = c->w;
-               c->h = c->h;
+               c->w = c->rw;
+               c->h = c->rh;
        }
        resize(c, True, TopLeft);
        while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
@@ -101,14 +102,8 @@ dotile(Arg *arg) {
 
        w = sw - mw;
        for(n = 0, c = clients; c; c = c->next)
-               if(isvisible(c)) {
-                       if(c->isfloat) {
-                               if(c->ismax)
-                                       togglemax(c);
-                       }
-                       else
-                               n++;
-               }
+               if(isvisible(c) && !c->isfloat)
+                       n++;
 
        if(n > 1)
                h = (sh - bh) / (n - 1);
@@ -117,6 +112,8 @@ dotile(Arg *arg) {
 
        for(i = 0, c = clients; c; c = c->next) {
                if(isvisible(c)) {
+                       if(c->ismax)
+                               togglemax(c);
                        if(c->isfloat) {
                                resize(c, True, TopLeft);
                                continue;
@@ -231,7 +228,7 @@ void
 restack() {
        Client *c;
        XEvent ev;
-       
+
        if(!sel) {
                drawstatus();
                return;
@@ -296,7 +293,6 @@ void
 zoom(Arg *arg) {
        unsigned int n;
        Client *c;
-       XEvent ev;
 
        if(!sel)
                return;