diff options
author | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-16 15:57:36 +0200 |
---|---|---|
committer | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-16 15:57:36 +0200 |
commit | a20b10d01fab9e844ba7cd2cf694b45f61b89f7c (patch) | |
tree | e09c1ad326198bfc47bea127593409184453b0d3 | |
parent | 4cc0551948074c82c5b66231f407fd9c142b12cc (diff) | |
download | dwm-a20b10d01fab9e844ba7cd2cf694b45f61b89f7c.tar.gz |
added general centralization rule for new clients (works around various borken apps)
-rw-r--r-- | client.c | 11 | ||||
-rw-r--r-- | tag.c | 5 |
2 files changed, 14 insertions, 2 deletions
@@ -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); @@ -281,7 +281,10 @@ void togglemode(Arg *arg) { arrange = arrange == dofloat ? dotile : dofloat; - arrange(NULL); + if(sel) + arrange(NULL); + else + drawstatus(); } void |