JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
applied the patch I missed from Gottox, thanks mate!
authorarg@garbe.us <unknown>
Tue, 3 Mar 2009 11:22:16 +0000 (11:22 +0000)
committerarg@garbe.us <unknown>
Tue, 3 Mar 2009 11:22:16 +0000 (11:22 +0000)
dwm.c

diff --git a/dwm.c b/dwm.c
index e1c0645..3ae709b 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -170,7 +170,7 @@ static void movemouse(const Arg *arg);
 static Client *nexttiled(Client *c);
 static void propertynotify(XEvent *e);
 static void quit(const Arg *arg);
-static void resize(Client *c, int x, int y, int w, int h, Bool sizehints);
+static void resize(Client *c, int x, int y, int w, int h);
 static void resizemouse(const Arg *arg);
 static void restack(void);
 static void run(void);
@@ -275,6 +275,9 @@ void
 applysizehints(Client *c, int *w, int *h) {
        Bool baseismin;
 
+       if(!resizehints && !c->isfloating)
+               return;
+
        /* see last two sentences in ICCCM 4.1.2.3 */
        baseismin = c->basew == c->minw && c->baseh == c->minh;
 
@@ -981,7 +984,7 @@ monocle(void) {
        Client *c;
 
        for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
-               resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, resizehints);
+               resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw);
        }
 }
 
@@ -1029,7 +1032,7 @@ movemouse(const Arg *arg) {
                                        togglefloating(NULL);
                        }
                        if(!lt[sellt]->arrange || c->isfloating)
-                               resize(c, nx, ny, c->w, c->h, False);
+                               resize(c, nx, ny, c->w, c->h);
                        break;
                }
        }
@@ -1085,11 +1088,10 @@ quit(const Arg *arg) {
 }
 
 void
-resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
+resize(Client *c, int x, int y, int w, int h) {
        XWindowChanges wc;
 
-       if(sizehints)
-               applysizehints(c, &w, &h);
+       applysizehints(c, &w, &h);
        if(w <= 0 || h <= 0)
                return;
        if(x > sx + sw)
@@ -1154,7 +1156,7 @@ resizemouse(const Arg *arg) {
                                        togglefloating(NULL);
                        }
                        if(!lt[sellt]->arrange || c->isfloating)
-                               resize(c, c->x, c->y, nw, nh, True);
+                               resize(c, c->x, c->y, nw, nh);
                        break;
                }
        }
@@ -1344,7 +1346,7 @@ showhide(Client *c, unsigned int ntiled) {
        if(ISVISIBLE(c)) { /* show clients top down */
                XMoveWindow(dpy, c->win, c->x, c->y);
                if(!lt[sellt]->arrange || c->isfloating)
-                       resize(c, c->x, c->y, c->w, c->h, True);
+                       resize(c, c->x, c->y, c->w, c->h);
                showhide(c->snext, ntiled);
        }
        else { /* hide clients bottom up */
@@ -1405,7 +1407,7 @@ tile(void) {
        /* master */
        c = nexttiled(clients);
        mw = mfact * ww;
-       resize(c, wx, wy, (n == 1 ? ww : mw) - 2 * c->bw, wh - 2 * c->bw, resizehints);
+       resize(c, wx, wy, (n == 1 ? ww : mw) - 2 * c->bw, wh - 2 * c->bw);
 
        if(--n == 0)
                return;
@@ -1420,7 +1422,7 @@ tile(void) {
 
        for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) {
                resize(c, x, y, w - 2 * c->bw, /* remainder */ ((i + 1 == n)
-                      ? wy + wh - y - 2 * c->bw : h - 2 * c->bw), resizehints);
+                      ? wy + wh - y - 2 * c->bw : h - 2 * c->bw));
                if(h != wh)
                        y = c->y + HEIGHT(c);
        }
@@ -1440,7 +1442,7 @@ togglefloating(const Arg *arg) {
                return;
        sel->isfloating = !sel->isfloating || sel->isfixed;
        if(sel->isfloating)
-               resize(sel, sel->x, sel->y, sel->w, sel->h, True);
+               resize(sel, sel->x, sel->y, sel->w, sel->h);
        arrange();
 }