X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=view.c;h=7c56ac264e11005e2dc136fae9edb3c4125906dc;hb=c8e57332d1a5167d213af0fc9438ff2b56c74fbb;hp=09100779a83f6c7661e069b6f56aa4044024d92f;hpb=ad0da9a571ecbdfa8fe0a397185b314f5654f094;p=dwm.git diff --git a/view.c b/view.c index 0910077..7c56ac2 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)); @@ -360,14 +333,6 @@ toggleview(Arg *arg) { } void -togglestackdir(Arg *arg) { - if(arrange == dofloat) - return; - isvertical = !isvertical; - arrange(NULL); -} - -void togglestackpos(Arg *arg) { if(arrange == dofloat) return; @@ -375,13 +340,8 @@ togglestackpos(Arg *arg) { stackpos = STACKPOS; else stackpos = StackBottom; - updatemaster(); - arrange(NULL); -} - -void -updatemaster(void) { master = ((stackpos == StackBottom ? sh - bh : sw) * MASTER) / 100; + arrange(NULL); } void