client.c
changeset 306 71f02d14dce1
parent 291 8e6e0aa5e2ae
child 307 ec8a66a2b9cc
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);