From 870fb5f74b1d968a2efb3a257c14ac6c40eab020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Sun, 11 May 2025 20:24:05 +0300 Subject: [PATCH] [Accessibility] Account for window scaling transform when setting node bounds. --- scene/main/window.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scene/main/window.cpp b/scene/main/window.cpp index a3a1c4df726..4de9bfa6302 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -1430,8 +1430,12 @@ void Window::_notification(int p_what) { DisplayServer::get_singleton()->accessibility_update_set_name(accessibility_title_element, tr_title); DisplayServer::get_singleton()->accessibility_update_set_bounds(accessibility_title_element, Rect2(Vector2(0, -w), Size2(size.x, w))); } else { - DisplayServer::get_singleton()->accessibility_update_set_transform(ae, Transform2D()); - DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), size)); + DisplayServer::get_singleton()->accessibility_update_set_transform(ae, get_final_transform()); + if (_get_size_2d_override() != Size2()) { + DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), _get_size_2d_override())); + } else { + DisplayServer::get_singleton()->accessibility_update_set_bounds(ae, Rect2(Point2(), _get_size())); + } if (accessibility_announcement_element.is_null()) { accessibility_announcement_element = DisplayServer::get_singleton()->accessibility_create_sub_element(ae, DisplayServer::AccessibilityRole::ROLE_STATIC_TEXT);