diff options
author | Anselm R. Garbe <garbeam@gmail.com> | 2007-07-28 17:18:45 +0200 |
---|---|---|
committer | Anselm R. Garbe <garbeam@gmail.com> | 2007-07-28 17:18:45 +0200 |
commit | a54cf2ecef2ca83441dccd454c694b92bca42a16 (patch) | |
tree | d793de29a6ceeafba2d0030c64a076d5dfd6ffa8 /client.c | |
parent | 4b9337a01e7f12058ce54ed65d69e64748397498 (diff) | |
download | dwm-a54cf2ecef2ca83441dccd454c694b92bca42a16.tar.gz |
changed ban/unban implementation to not move the windows anymore, but map/unmap them instead - PLEASE TEST THIS
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/client.c b/client.c index 68d10a7..85b1af8 100644 --- a/client.c +++ b/client.c @@ -98,10 +98,12 @@ attach(Client *c) { void ban(Client *c) { - if (c->isbanned) + if(c->isbanned) return; - XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); + XUnmapWindow(dpy, c->win); + setclientstate(c, IconicState); c->isbanned = True; + c->unmapped++; } void @@ -135,7 +137,7 @@ detach(Client *c) { void focus(Client *c) { - if((!c && selscreen)|| (c && !isvisible(c))) + if((!c && selscreen) || (c && !isvisible(c))) for(c = stack; c && !isvisible(c); c = c->snext); if(sel && sel != c) { grabbuttons(sel, False); @@ -224,9 +226,7 @@ manage(Window w, XWindowAttributes *wa) { c->isfloating = (rettrans == Success) || c->isfixed; attach(c); attachstack(c); - ban(c); - XMapWindow(dpy, w); - setclientstate(c, NormalState); + c->isbanned = True; focus(c); lt->arrange(); } @@ -308,9 +308,10 @@ togglefloating(const char *arg) { void unban(Client *c) { - if (!c->isbanned) + if(!c->isbanned) return; - XMoveWindow(dpy, c->win, c->x, c->y); + XMapWindow(dpy, c->win); + setclientstate(c, NormalState); c->isbanned = False; } |