Configure geometry before applying rules

Configuring geometry before applying rules makes it possible to have
more complex constraints in applyrules that depend on the initial window
dimensions and location.
new_dwm
Eric Pruitt 9 years ago committed by Anselm R Garbe
parent 3465bed290
commit cd2d7549b3

13
dwm.c

@ -1043,6 +1043,13 @@ manage(Window w, XWindowAttributes *wa)
c = ecalloc(1, sizeof(Client)); c = ecalloc(1, sizeof(Client));
c->win = w; c->win = w;
/* geometry */
c->x = c->oldx = wa->x;
c->y = c->oldy = wa->y;
c->w = c->oldw = wa->width;
c->h = c->oldh = wa->height;
c->oldbw = wa->border_width;
updatetitle(c); updatetitle(c);
if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) { if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
c->mon = t->mon; c->mon = t->mon;
@ -1051,12 +1058,6 @@ manage(Window w, XWindowAttributes *wa)
c->mon = selmon; c->mon = selmon;
applyrules(c); applyrules(c);
} }
/* geometry */
c->x = c->oldx = wa->x;
c->y = c->oldy = wa->y;
c->w = c->oldw = wa->width;
c->h = c->oldh = wa->height;
c->oldbw = wa->border_width;
if (c->x + WIDTH(c) > c->mon->mx + c->mon->mw) if (c->x + WIDTH(c) > c->mon->mx + c->mon->mw)
c->x = c->mon->mx + c->mon->mw - WIDTH(c); c->x = c->mon->mx + c->mon->mw - WIDTH(c);

Loading…
Cancel
Save