X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/72faa1919e34ffeebb1ca35ae8c2c24b700dcf66..bced9077f963be2bce4f0c60023c3b48af54b8e9:/view.c?ds=inline

diff --git a/view.c b/view.c
index fd07fc5..de3328e 100644
--- a/view.c
+++ b/view.c
@@ -31,7 +31,7 @@ togglemax(Client *c) {
 		c->w = c->rw;
 		c->h = c->rh;
 	}
-	resize(c, True, TopLeft);
+	resize(c, True);
 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
 }
 
@@ -56,7 +56,7 @@ dofloat(void) {
 
 	for(c = clients; c; c = c->next) {
 		if(isvisible(c)) {
-			resize(c, True, TopLeft);
+			resize(c, True);
 		}
 		else
 			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
@@ -84,7 +84,7 @@ dotile(void) {
 	for(i = 0, c = clients; c; c = c->next)
 		if(isvisible(c)) {
 			if(c->isfloat) {
-				resize(c, True, TopLeft);
+				resize(c, True);
 				continue;
 			}
 			c->ismax = False;
@@ -98,14 +98,14 @@ dotile(void) {
 			else {  /* tile window */
 				c->x += mw;
 				c->w = tw - 2 * BORDERPX;
-				if(th > bh) {
+				if(th - 2 * BORDERPX > bh) {
 					c->y += (i - nmaster) * th;
 					c->h = th - 2 * BORDERPX;
 				}
-				else /* fallback if th < bh */
+				else /* fallback if th - 2 * BORDERPX < bh */
 					c->h = wah - 2 * BORDERPX;
 			}
-			resize(c, False, TopLeft);
+			resize(c, False);
 			i++;
 		}
 		else
@@ -149,7 +149,8 @@ focusprev(Arg *arg) {
 
 void
 incnmaster(Arg *arg) {
-	if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh))
+	if((arrange == dofloat) || (nmaster + arg->i < 1)
+		|| (wah / (nmaster + arg->i) - 2 * BORDERPX < bh))
 		return;
 	nmaster += arg->i;
 	if(sel)
@@ -173,7 +174,8 @@ resizemaster(Arg *arg) {
 	if(arg->i == 0)
 		master = MASTER;
 	else {
-		if(master + arg->i > 950 || master + arg->i < 50)
+		if(waw * (master + arg->i) / 1000 > waw - bh - 2 * BORDERPX
+			|| waw * (master + arg->i) / 1000 < bh + 2 * BORDERPX)
 			return;
 		master += arg->i;
 	}