Mercurial > aewl
comparison client.c @ 306:71f02d14dce1
added general centralization rule for new clients (works around various borken apps)
author | Anselm R.Garbe <arg@10ksloc.org> |
---|---|
date | Wed, 16 Aug 2006 15:57:36 +0200 |
parents | 8e6e0aa5e2ae |
children | ec8a66a2b9cc |
comparison
equal
deleted
inserted
replaced
305:f7978c6395f5 | 306:71f02d14dce1 |
---|---|
185 } | 185 } |
186 | 186 |
187 void | 187 void |
188 manage(Window w, XWindowAttributes *wa) | 188 manage(Window w, XWindowAttributes *wa) |
189 { | 189 { |
190 Client *c; | 190 Client *c, *tc; |
191 Window trans; | 191 Window trans; |
192 XSetWindowAttributes twa; | 192 XSetWindowAttributes twa; |
193 | 193 |
194 c = emallocz(sizeof(Client)); | 194 c = emallocz(sizeof(Client)); |
195 c->tags = emallocz(ntags * sizeof(Bool)); | 195 c->tags = emallocz(ntags * sizeof(Bool)); |
255 if(!c->isfloat) | 255 if(!c->isfloat) |
256 c->isfloat = trans | 256 c->isfloat = trans |
257 || (c->maxw && c->minw && | 257 || (c->maxw && c->minw && |
258 c->maxw == c->minw && c->maxh == c->minh); | 258 c->maxw == c->minw && c->maxh == c->minh); |
259 settitle(c); | 259 settitle(c); |
260 | |
261 if(trans && (tc = getclient(trans))) { | |
262 c->x = (tc->x + tc->w / 2) - (c->w / 2); | |
263 c->y = (tc->y + tc->h / 2) - (c->h / 2); | |
264 } | |
265 else { | |
266 c->x = (sw / 2) - (c->w / 2); | |
267 c->y = ((sh - bh) / 2) - (c->h / 2) + bh; | |
268 } | |
260 | 269 |
261 if(isvisible(c)) | 270 if(isvisible(c)) |
262 sel = c; | 271 sel = c; |
263 arrange(NULL); | 272 arrange(NULL); |
264 XMapWindow(dpy, c->win); | 273 XMapWindow(dpy, c->win); |