Переглянути джерело

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.
Eric Pruitt 10 роки тому
батько
коміт
cd2d7549b3
1 змінених файлів з 7 додано та 6 видалено
  1. 7 6
      dwm.c

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