From 5441a82cfb75cc11d715ef19c846efc48e5073fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Sat, 10 May 2025 19:16:21 +0300 Subject: [PATCH] Do not call `accessibility_set_window_rect` on Wayland, fix main windows accessibility context creation. --- platform/linuxbsd/wayland/display_server_wayland.cpp | 10 ++++++++++ scene/main/window.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/linuxbsd/wayland/display_server_wayland.cpp b/platform/linuxbsd/wayland/display_server_wayland.cpp index 7b9b7ac502c..60a4f4d1f83 100644 --- a/platform/linuxbsd/wayland/display_server_wayland.cpp +++ b/platform/linuxbsd/wayland/display_server_wayland.cpp @@ -2074,6 +2074,16 @@ DisplayServerWayland::DisplayServerWayland(const String &p_rendering_driver, Win wd.rect.size = p_resolution; wd.title = "Godot"; +#ifdef ACCESSKIT_ENABLED + if (accessibility_driver && !accessibility_driver->window_create(wd.id, nullptr)) { + if (OS::get_singleton()->is_stdout_verbose()) { + ERR_PRINT("Can't create an accessibility adapter for window, accessibility support disabled!"); + } + memdelete(accessibility_driver); + accessibility_driver = nullptr; + } +#endif + show_window(MAIN_WINDOW_ID); #ifdef RD_ENABLED diff --git a/scene/main/window.cpp b/scene/main/window.cpp index a3a1c4df726..a0bc7479ba0 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -761,7 +761,7 @@ void Window::_rect_changed_callback(const Rect2i &p_callback) { size = p_callback.size; _update_viewport_size(); } - if (window_id != DisplayServer::INVALID_WINDOW_ID) { + if (window_id != DisplayServer::INVALID_WINDOW_ID && !DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_SELF_FITTING_WINDOWS)) { Vector2 sz_out = DisplayServer::get_singleton()->window_get_size_with_decorations(window_id); Vector2 pos_out = DisplayServer::get_singleton()->window_get_position_with_decorations(window_id); Vector2 sz_in = DisplayServer::get_singleton()->window_get_size(window_id);