X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/36178933ed53857d59046278afb25b7525cafb39..7c052b37c8578a8d759bc761afaf7b676781b537:/view.c diff --git a/view.c b/view.c index ac8e7a3..d37933a 100644 --- a/view.c +++ b/view.c @@ -194,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; @@ -259,6 +259,7 @@ isvisible(Client *c) { void resizecol(Arg *arg) { + int s; unsigned int n; Client *c; @@ -268,13 +269,14 @@ resizecol(Arg *arg) { if(!sel || sel->isfloat || n < 2 || (arrange == dofloat)) return; + s = stackpos == StackBottom ? sh - bh : sw; if(sel == getnext(clients)) { - if(master + arg->i > sw - MINW || master + arg->i < MINW) + if(master + arg->i > s - MINW || master + arg->i < MINW) return; master += arg->i; } else { - if(master - arg->i > sw - MINW || master - arg->i < MINW) + if(master - arg->i > s - MINW || master - arg->i < MINW) return; master -= arg->i; } @@ -294,11 +296,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)); @@ -333,13 +342,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