about summary refs log tree commit diff stats
path: root/client.c
diff options
context:
space:
mode:
authorAnselm R.Garbe <arg@10ksloc.org>2006-08-16 15:57:36 +0200
committerAnselm R.Garbe <arg@10ksloc.org>2006-08-16 15:57:36 +0200
commita20b10d01fab9e844ba7cd2cf694b45f61b89f7c (patch)
treee09c1ad326198bfc47bea127593409184453b0d3 /client.c
parent4cc0551948074c82c5b66231f407fd9c142b12cc (diff)
downloaddwm-a20b10d01fab9e844ba7cd2cf694b45f61b89f7c.tar.gz
added general centralization rule for new clients (works around various borken apps)
Diffstat (limited to 'client.c')
-rw-r--r--client.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/client.c b/client.c
index 24d38c3..269bf8c 100644
--- a/client.c
+++ b/client.c
@@ -187,7 +187,7 @@ killclient(Arg *arg)
 void
 manage(Window w, XWindowAttributes *wa)
 {
-	Client *c;
+	Client *c, *tc;
 	Window trans;
 	XSetWindowAttributes twa;
 
@@ -258,6 +258,15 @@ manage(Window w, XWindowAttributes *wa)
 				c->maxw == c->minw && c->maxh == c->minh);
 	settitle(c);
 
+	if(trans && (tc = getclient(trans))) {
+		c->x = (tc->x + tc->w / 2) - (c->w / 2);
+		c->y = (tc->y + tc->h / 2) - (c->h / 2);
+	}
+	else {
+		c->x = (sw / 2) - (c->w / 2);
+		c->y = ((sh - bh) / 2) - (c->h / 2) + bh;
+	}
+
 	if(isvisible(c))
 		sel = c;
 	arrange(NULL);