added general centralization rule for new clients (works around various borken apps) a20b10d0
Anselm R.Garbe · 2006-08-16 15:57 2 file(s) · +14 −2
client.c +10 −1
187 187
void
188 188
manage(Window w, XWindowAttributes *wa)
189 189
{
190 -
	Client *c;
190 +
	Client *c, *tc;
191 191
	Window trans;
192 192
	XSetWindowAttributes twa;
193 193
257 257
			|| (c->maxw && c->minw &&
258 258
				c->maxw == c->minw && c->maxh == c->minh);
259 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 270
	if(isvisible(c))
262 271
		sel = c;
tag.c +4 −1
281 281
togglemode(Arg *arg)
282 282
{
283 283
	arrange = arrange == dofloat ? dotile : dofloat;
284 -
	arrange(NULL);
284 +
	if(sel)
285 +
		arrange(NULL);
286 +
	else
287 +
		drawstatus();
285 288
}
286 289
287 290
void