Merge pull request #107787 from Riteo/certified-integer-moment

Wayland: Fix division by zero when scale is less than 1
This commit is contained in:
Rémi Verschelde 2025-06-21 11:14:26 +02:00
commit 4e6ac9bccc
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -3829,7 +3829,7 @@ void WaylandThread::window_set_max_size(DisplayServer::WindowID p_window_id, con
ERR_FAIL_COND(!windows.has(p_window_id)); ERR_FAIL_COND(!windows.has(p_window_id));
WindowState &ws = windows[p_window_id]; WindowState &ws = windows[p_window_id];
Vector2i logical_max_size = p_size / window_state_get_scale_factor(&ws); Vector2i logical_max_size = scale_vector2i(p_size, 1 / window_state_get_scale_factor(&ws));
if (ws.wl_surface && ws.xdg_toplevel) { if (ws.wl_surface && ws.xdg_toplevel) {
xdg_toplevel_set_max_size(ws.xdg_toplevel, logical_max_size.width, logical_max_size.height); xdg_toplevel_set_max_size(ws.xdg_toplevel, logical_max_size.width, logical_max_size.height);
@ -3848,7 +3848,7 @@ void WaylandThread::window_set_min_size(DisplayServer::WindowID p_window_id, con
ERR_FAIL_COND(!windows.has(p_window_id)); ERR_FAIL_COND(!windows.has(p_window_id));
WindowState &ws = windows[p_window_id]; WindowState &ws = windows[p_window_id];
Size2i logical_min_size = p_size / window_state_get_scale_factor(&ws); Size2i logical_min_size = scale_vector2i(p_size, 1 / window_state_get_scale_factor(&ws));
if (ws.wl_surface && ws.xdg_toplevel) { if (ws.wl_surface && ws.xdg_toplevel) {
xdg_toplevel_set_min_size(ws.xdg_toplevel, logical_min_size.width, logical_min_size.height); xdg_toplevel_set_min_size(ws.xdg_toplevel, logical_min_size.width, logical_min_size.height);