X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=view.c;h=72e32c78b991f30a3bdb6805a36cdbb52b2e18ce;hb=1802fad2f9b2a432b04f642b9e954159d1f2554f;hp=6697c9092182241128513778ac60fa74bf9ed7a5;hpb=fee8df6ccf3ab1494421d422af252f7b3da3a811;p=dwm.git diff --git a/view.c b/view.c index 6697c90..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 = sx + stackw - 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)