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);