X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=0309eace9e46817935a13e8509e1d106b52acfb7;hb=67c2124fa9962743fd7406953506dabce282683c;hp=24d38c38f3b7d5aba4dce869972b92420a282bfc;hpb=ee31e38dc75832a66cb0fc01bcf2f419ac96a20b;p=dwm.git diff --git a/client.c b/client.c index 24d38c3..0309eac 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,19 @@ 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); + if((c->x + c->w < 0) || (c->x >= sw)) + c->x = (sw / 2) - (c->w / 2); + if((c->y + c->h < 0) || (c->y >= sh)) + c->y = ((sh - bh) / 2) - (c->h / 2) + bh; + } + else { + c->x = (sw / 2) - (c->w / 2); + c->y = ((sh - bh) / 2) - (c->h / 2) + bh; + } + if(isvisible(c)) sel = c; arrange(NULL); @@ -272,7 +285,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { int bottom = c->y + c->h; int right = c->x + c->w; - /*XConfigureEvent e;*/ XWindowChanges wc; if(sizehints) { @@ -289,9 +301,9 @@ resize(Client *c, Bool sizehints, Corner sticky) if(c->maxh && c->h > c->maxh) c->h = c->maxh; } - if(c->x > right) /* might happen on restart */ - c->x = right - c->w; - if(c->y > bottom) + if(c->x > sw) /* might happen on restart */ + c->x = sw - c->w; + if(c->y > sh) c->y = bottom - c->h; if(sticky == TopRight || sticky == BotRight) c->x = right - c->w;