"program + user specified" :
"BADNESS !?")))), placew, placeh);
+ /* splash screens are also returned as TRUE for transient,
+ and so will be forced on screen below */
transient = place_client(self, &placex, &placey, settings);
/* make sure the window is visible. */
place.c or by the user are allowed partially
off-screen and on xinerama divides (ie,
it is up to the placement routines to avoid
- the xinerama divides) */
+ the xinerama divides)
+
+ splash screens get "transient" set to TRUE by
+ the place_client call
+ */
transient ||
(!(self->positioned & USPosition) &&
client_normal(self) &&
the visible screen area on its monitor. Use basically the same rules
for forcing the window on screen in the client_find_onscreen call.
- do this after place_client, it chooses the monitor! */
+ do this after place_client, it chooses the monitor!
+
+ splash screens get "transient" set to TRUE by
+ the place_client call
+ */
if (transient ||
(!(self->sized & USSize) &&
client_normal(self) &&
SIZE_SET(self->logical_size, logicalw, logicalh);
/* figure out if we moved or resized or what */
- moved = x != self->area.x || y != self->area.y;
- resized = w != self->area.width || h != self->area.height;
+ moved = (x != self->area.x || y != self->area.y);
+ resized = (w != self->area.width || h != self->area.height);
oldw = self->area.width;
oldh = self->area.height;
FALSE, StructureNotifyMask, &event);
}
- /* if the client is shrinking, then resize the frame before the client */
- if (send_resize_client && (w <= oldw && h <= oldh)) {
+ /* if the client is shrinking, then resize the frame before the client.
+
+ both of these resize sections may run, because the top one only resizes
+ in the direction that is growing
+ */
+ if (send_resize_client && (w <= oldw || h <= oldh)) {
frame_adjust_client_area(self->frame);
XResizeWindow(ob_display, self->window, w, h);
}