diff options
| -rw-r--r-- | dwm.c | 24 | 
1 files changed, 13 insertions, 11 deletions
| @@ -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();  } | 
