aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client.c11
-rw-r--r--tag.c5
2 files changed, 14 insertions, 2 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);
diff --git a/tag.c b/tag.c
index 4b6d513..841d0fc 100644
--- 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
remember that computers suck.