about summary refs log tree commit diff stats
path: root/client.c
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@gmail.com>2007-07-28 17:18:45 +0200
committerAnselm R. Garbe <garbeam@gmail.com>2007-07-28 17:18:45 +0200
commita54cf2ecef2ca83441dccd454c694b92bca42a16 (patch)
treed793de29a6ceeafba2d0030c64a076d5dfd6ffa8 /client.c
parent4b9337a01e7f12058ce54ed65d69e64748397498 (diff)
downloaddwm-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.c17
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;
 }