From 5fa8b72a21666376c717a66d9d255d2009f80e38 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Mon, 30 Mar 2026 15:31:39 -0400 Subject: [PATCH] fix: mark window ready after adapter created --- winit/src/lib.rs | 24 +++++++++++++++++++----- winit/src/window/state.rs | 3 ++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/winit/src/lib.rs b/winit/src/lib.rs index a4ef66d4..91a5b550 100644 --- a/winit/src/lib.rs +++ b/winit/src/lib.rs @@ -640,6 +640,11 @@ where ), ), ); + + self.process_event( + event_loop, + Some(Event::A11yAdapter(id)), + ); } Control::Cleanup(id) => { _ = self.adapters.remove(&id); @@ -687,11 +692,8 @@ enum Event { Accessibility(window::Id, iced_accessibility::accesskit::ActionRequest), #[cfg(feature = "a11y")] AccessibilityEnabled(bool), - // #[cfg(feature = "a11y")] - // A11yAdapter( - // window::Id, - // (u64, iced_accessibility::accesskit_winit::Adapter), - // ), + #[cfg(feature = "a11y")] + A11yAdapter(window::Id), Winit(winit::window::WindowId, winit::event::WindowEvent), AboutToWait, UserEvent(Action), @@ -1017,6 +1019,12 @@ async fn run_instance

( window.redraw_requested = false; if !window.state.ready { + control_sender + .start_send(Control::Winit( + window.raw.id(), + WindowEvent::RedrawRequested, + )) + .expect("Send redraw event"); continue; } // XX must force update to corner radius before the surface is committed. @@ -1890,6 +1898,12 @@ async fn run_instance

( } } } + #[cfg(feature = "a11y")] + Event::A11yAdapter(window_id) => { + if let Some(window) = window_manager.get_mut(window_id) { + window.state.ready = true; + } + } _ => {} } } diff --git a/winit/src/window/state.rs b/winit/src/window/state.rs index 304638e5..de8d7cfc 100644 --- a/winit/src/window/state.rs +++ b/winit/src/window/state.rs @@ -82,7 +82,8 @@ where theme_mode, default_theme, style, - ready: true, + + ready: cfg!(not(feature = "a11y")), } }