JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added general centralization rule for new clients (works around various borken apps)
authorAnselm R.Garbe <arg@10ksloc.org>
Wed, 16 Aug 2006 13:57:36 +0000 (15:57 +0200)
committerAnselm R.Garbe <arg@10ksloc.org>
Wed, 16 Aug 2006 13:57:36 +0000 (15:57 +0200)
client.c
tag.c

index 24d38c3..269bf8c 100644 (file)
--- 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);
diff --git a/tag.c b/tag.c
index 4b6d513..841d0fc 100644 (file)
--- a/tag.c
+++ b/tag.c
@@ -281,7 +281,10 @@ void
 togglemode(Arg *arg)
 {
        arrange = arrange == dofloat ? dotile : dofloat;
-       arrange(NULL);
+       if(sel)
+               arrange(NULL);
+       else
+               drawstatus();
 }
 
 void