diff -r c742c339c6ce layout.c --- a/layout.c Mon May 28 21:01:38 2007 +0200 +++ b/layout.c Mon May 28 21:01:40 2007 +0200 @@ -12,6 +12,22 @@ static unsigned int nlayouts = 0; static unsigned int nlayouts = 0; 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) { @@ -28,9 +44,7 @@ tile(void) { for(i = 0, 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); if(c->isfloating) continue; c->ismax = False; @@ -60,10 +74,8 @@ tile(void) { resize(c, nx, ny, nw, nh, False); i++; } - else { - c->isbanned = True; - XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); - } + else + ban(c); focus(NULL); restack(); } @@ -83,10 +95,8 @@ floating(void) { c->isbanned = False; resize(c, c->x, c->y, c->w, c->h, True); } - else { - c->isbanned = True; - XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); - } + else + ban(c); focus(NULL); restack(); }