about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorarg@garbe.us <unknown>2009-03-03 11:22:16 +0000
committerarg@garbe.us <unknown>2009-03-03 11:22:16 +0000
commitea0008cba24b57f7955541568c8c527c06329ccd (patch)
tree5490defab290db612640decb704f59b1e2ec0220
parentaf508c2e8209a5e967dc67726919bc4da60b2c2c (diff)
downloaddwm-ea0008cba24b57f7955541568c8c527c06329ccd.tar.gz
applied the patch I missed from Gottox, thanks mate!
-rw-r--r--dwm.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/dwm.c b/dwm.c
index e1c0645..3ae709b 100644
--- 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();
 }
 
'>266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319