1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Wayland: Fix division by zero when scale is less than 1

The `Vector2i` division operator casts doubles down to `int32_t`. It
would thus truncate the fractional scale factor to 0 if less than 1,
resulting in a FPE on x86_64.
This commit is contained in:
Riteo Siuga
2025-06-21 02:58:34 +02:00
parent 48f361a6eb
commit b60b68055f

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));
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) {
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));
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) {
xdg_toplevel_set_min_size(ws.xdg_toplevel, logical_min_size.width, logical_min_size.height);