X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=layout.c;h=f8c92ee23790a4c46b0d8f0c793925e169a11de2;hb=51a94a2f147e490101f33b276c83389e48307425;hp=f3f8e26d3c2b52853be8d02bbf2e1be6b1000c2a;hpb=141beb27041371672d54da7f541a3855fab0ac5b;p=dwm.git diff --git a/layout.c b/layout.c index f3f8e26..f8c92ee 100644 --- a/layout.c +++ b/layout.c @@ -12,22 +12,6 @@ static unsigned int masterw = MASTERWIDTH; static unsigned int nmaster = NMASTER; static void -ban(Client *c) { - if (c->isbanned) - return; - XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); - c->isbanned = True; -} - -static void -unban(Client *c) { - if (!c->isbanned) - return; - XMoveWindow(dpy, c->win, c->x, c->y); - c->isbanned = False; -} - -static void tile(void) { unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th; Client *c; @@ -88,9 +72,7 @@ floating(void) { for(c = clients; c; c = c->next) if(isvisible(c)) { - if(c->isbanned) - XMoveWindow(dpy, c->win, c->x, c->y); - c->isbanned = False; + unban(c); resize(c, c->x, c->y, c->w, c->h, True); } else @@ -182,6 +164,7 @@ void restack(void) { Client *c; XEvent ev; + XWindowChanges wc; drawstatus(); if(!sel) @@ -189,12 +172,17 @@ restack(void) { if(sel->isfloating || lt->arrange == floating) XRaiseWindow(dpy, sel->win); if(lt->arrange != floating) { - if(!sel->isfloating) - XLowerWindow(dpy, sel->win); + wc.stack_mode = Below; + wc.sibling = barwin; + if(!sel->isfloating) { + XConfigureWindow(dpy, sel->win, CWSibling | CWStackMode, &wc); + wc.sibling = sel->win; + } for(c = nexttiled(clients); c; c = nexttiled(c->next)) { if(c == sel) continue; - XLowerWindow(dpy, c->win); + XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc); + wc.sibling = c->win; } } XSync(dpy, False);