xwayland: Prevent overriding maximized/fullscreen/tiled geometry

This commit is contained in:
John Lindgren 2023-02-17 14:08:27 -05:00
parent 677dc9baf9
commit 179a030bbe

View file

@ -308,12 +308,24 @@ handle_request_configure(struct wl_listener *listener, void *data)
struct view *view = &xwayland_view->base; struct view *view = &xwayland_view->base;
struct wlr_xwayland_surface_configure_event *event = data; struct wlr_xwayland_surface_configure_event *event = data;
int width = event->width; if (view_is_floating(view)) {
int height = event->height; /* Honor client configure requests for floating views */
view_adjust_size(view, &width, &height); struct wlr_box box = {.x = event->x, .y = event->y,
.width = event->width, .height = event->height};
xwayland_view_configure(view, view_adjust_size(view, &box.width, &box.height);
(struct wlr_box){event->x, event->y, width, height}); xwayland_view_configure(view, box);
} else {
/*
* Do not allow clients to request geometry other than
* what we computed for maximized/fullscreen/tiled
* views. Ignore the client request and send back a
* ConfigureNotify event with the computed geometry.
*
* FIXME: wlroots needs to synthesize ConfigureNotify:
* https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4008
*/
xwayland_view_configure(view, view->pending);
}
} }
static void static void