X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/ad0da9a571ecbdfa8fe0a397185b314f5654f094..1802fad2f9b2a432b04f642b9e954159d1f2554f:/view.c?ds=inline

diff --git a/view.c b/view.c
index 0910077..72e32c7 100644
--- a/view.c
+++ b/view.c
@@ -65,7 +65,6 @@ togglemax(Client *c)
 /* extern */
 
 void (*arrange)(Arg *) = DEFMODE;
-Bool isvertical = VERTICALSTACK;
 StackPos stackpos = STACKPOS;
 
 void
@@ -119,20 +118,11 @@ dotile(Arg *arg) {
 		stackh = sh - bh;
 	}
 
-	if(isvertical) {
-		tw = stackw;
-		if(n > 1)
-			th = stackh / (n - 1);
-		else
-			th = stackh;
-	}
-	else {
+	tw = stackw;
+	if(n > 1)
+		th = stackh / (n - 1);
+	else
 		th = stackh;
-		if(n > 1)
-			tw = stackw / (n - 1);
-		else
-			tw = stackw;
-	}
 
 	for(i = 0, c = clients; c; c = c->next) {
 		if(isvisible(c)) {
@@ -169,56 +159,32 @@ dotile(Arg *arg) {
 					break;
 				}
 			}
-			else if((isvertical && th > bh) || (!isvertical && tw > MINW)) {
+			else if(th > bh) {
 				/* tile window */
 				c->w = tw - 2 * BORDERPX;
 				c->h = th - 2 * BORDERPX;
 				switch(stackpos) {
 				case StackLeft:
-					if(isvertical) {
-						c->x = sx;
-						c->y = sy + (i - 1) * th + bh;
-						if(i + 1 == n)
-							c->h = sh - c->y - 2 * BORDERPX;
-					}
-					else {
-						c->x = sx + (i - 1) * tw;
-						c->y = sy + bh;
-						if(i + 1 == n)
-							c->w = sx + stackw - c->x - 2 * BORDERPX;
-					}
+					c->x = sx;
+					c->y = sy + (i - 1) * th + bh;
+					if(i + 1 == n)
+						c->h = sh - c->y - 2 * BORDERPX;
 					break;
 				case StackBottom:
-					if(isvertical) {
-						c->x = sx;
-						c->y = sy + master + (i - 1) * th + bh;
-						if(i + 1 == n)
-							c->h = sh - c->y - 2 * BORDERPX;
-					}
-					else {
-						c->x = sx + (i - 1) * tw;
-						c->y = sy + bh + master;
-						if(i + 1 == n)
-							c->w = sw - c->x - 2 * BORDERPX;
-					}
+					c->x = sx;
+					c->y = sy + master + (i - 1) * th + bh;
+					if(i + 1 == n)
+						c->h = sh - c->y - 2 * BORDERPX;
 					break;
 				case StackRight:
-					if(isvertical) {
-						c->x = sx + master;
-						c->y = sy + (i - 1) * th + bh;
-						if(i + 1 == n)
-							c->h = sh - c->y - 2 * BORDERPX;
-					}
-					else {
-						c->x = sx + master + (i - 1) * tw;
-						c->y = sy + bh;
-						if(i + 1 == n)
-							c->w = sw - c->x - 2 * BORDERPX;
-					}
+					c->x = sx + master;
+					c->y = sy + (i - 1) * th + bh;
+					if(i + 1 == n)
+						c->h = sh - c->y - 2 * BORDERPX;
 					break;
 				}
 			}
-			else { /* fallback if th < bh resp. tw < MINW */
+			else { /* fallback if th < bh */
 				c->w = stackw - 2 * BORDERPX;
 				c->h = stackh - 2 * BORDERPX;
 				switch(stackpos) {
@@ -228,7 +194,7 @@ dotile(Arg *arg) {
 					break;
 				case StackBottom:
 					c->x = sx;
-					c->y = sy + master;
+					c->y = sy + master + bh;
 					break;
 				case StackRight:
 					c->x = sx + master;
@@ -328,11 +294,18 @@ restack(void) {
 		XRaiseWindow(dpy, sel->win);
 		XRaiseWindow(dpy, sel->twin);
 	}
-	if(arrange != dofloat)
+	if(arrange != dofloat) {
+		if(!sel->isfloat) {
+			XLowerWindow(dpy, sel->twin);
+			XLowerWindow(dpy, sel->win);
+		}
 		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
+			if(c == sel)
+				continue;
 			XLowerWindow(dpy, c->twin);
 			XLowerWindow(dpy, c->win);
 		}
+	}
 	drawall();
 	XSync(dpy, False);
 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
@@ -359,14 +332,6 @@ toggleview(Arg *arg) {
 	arrange(NULL);
 }
 
-void
-togglestackdir(Arg *arg) {
-	if(arrange == dofloat)
-		return;
-	isvertical = !isvertical;
-	arrange(NULL);
-}
-
 void
 togglestackpos(Arg *arg) {
 	if(arrange == dofloat)