/* if the client is enlarging, then resize the client before the frame */
if (send_resize_client && (w > oldw || h > oldh)) {
- XResizeWindow(ob_display, self->window, MAX(w, oldw), MAX(h, oldh));
+ XMoveResizeWindow(ob_display, self->window,
+ self->frame->size.left, self->frame->size.top,
+ MAX(w, oldw), MAX(h, oldh));
frame_adjust_client_area(self->frame);
}
*/
if (send_resize_client && (w <= oldw || h <= oldh)) {
frame_adjust_client_area(self->frame);
- XResizeWindow(ob_display, self->window, w, h);
+ XMoveResizeWindow(ob_display, self->window,
+ self->frame->size.left, self->frame->size.top, w, h);
+ }
+
+ if (!resized) {
+ /* when the client has StaticGravity, it likes to move around.
+ also this correctly positions the client when it maps */
+ XMoveWindow(ob_display, self->window,
+ self->frame->size.left, self->frame->size.top);
}
XFlush(ob_display);
self->area.width,
self->area.height);
- /* when the client has StaticGravity, it likes to move around. */
- XMoveWindow(ob_display, self->client->window,
- self->size.left, self->size.top);
-
if (resized) {
framerender_frame(self);
frame_adjust_shape(self);