X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=layout.c;h=f8c92ee23790a4c46b0d8f0c793925e169a11de2;hb=c95bf3db9dcbf48428140bca6c2f86129977cc6c;hp=7b9b3ef2f8d519984af9e085409f59aa3a45834c;hpb=d934296476be7345842fec1a2630d1752c704078;p=dwm.git diff --git a/layout.c b/layout.c index 7b9b3ef..f8c92ee 100644 --- a/layout.c +++ b/layout.c @@ -1,9 +1,4 @@ -/* © 2006-2007 Anselm R. Garbe - * © 2006-2007 Sander van Dijk - * © 2006-2007 Jukka Salmi - * © 2007 Premysl Hruby - * © 2007 Szabolcs Nagy - * See LICENSE file for license details. */ +/* See LICENSE file for copyright and license details. */ #include "dwm.h" #include @@ -17,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; @@ -93,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 @@ -187,6 +164,7 @@ void restack(void) { Client *c; XEvent ev; + XWindowChanges wc; drawstatus(); if(!sel) @@ -194,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); @@ -248,7 +231,7 @@ togglemax(const char *arg) { sel->ry = sel->y; sel->rw = sel->w; sel->rh = sel->h; - resize(sel, wax, way, waw - 2 * BORDERPX, wah - 2 * BORDERPX, True); + resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True); } else resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);