xdg_shell: handle_commit() could receive new geometry of size outside of the toplevel set boundaries (#9130)

This commit is contained in:
dawser 2026-04-27 17:37:51 +02:00
parent c857ca3a97
commit 06575b00ed

View file

@ -311,6 +311,24 @@ static void handle_commit(struct wl_listener *listener, void *data) {
}
struct wlr_box *new_geo = &xdg_surface->geometry;
if (view->wlr_xdg_toplevel->current.min_width > 0 &&
new_geo->width < view->wlr_xdg_toplevel->current.min_width) {
new_geo->width = view->wlr_xdg_toplevel->current.min_width;
}
if (view->wlr_xdg_toplevel->current.min_height > 0 &&
new_geo->height < view->wlr_xdg_toplevel->current.min_height) {
new_geo->height = view->wlr_xdg_toplevel->current.min_height;
}
if (view->wlr_xdg_toplevel->current.max_width > 0 &&
new_geo->width > view->wlr_xdg_toplevel->current.max_width) {
new_geo->width = view->wlr_xdg_toplevel->current.max_width;
}
if (view->wlr_xdg_toplevel->current.max_height > 0 &&
new_geo->height < view->wlr_xdg_toplevel->current.max_height) {
new_geo->height = view->wlr_xdg_toplevel->current.max_height;
}
bool new_size = new_geo->width != view->geometry.width ||
new_geo->height != view->geometry.height ||
new_geo->x != view->geometry.x ||