diff options
author | 2025-02-03 03:34:41 +0100 | |
---|---|---|
committer | 2025-02-03 03:34:41 +0100 | |
commit | ba755c69d648cace61f23537266f2e556ee70c15 (patch) | |
tree | 8a402369992a8b50774a6a5b8a390e1f06d7f891 | |
parent | c9abe25d3167bb12d935e3a095160a897dd98176 (diff) | |
download | iced-ba755c69d648cace61f23537266f2e556ee70c15.tar.gz iced-ba755c69d648cace61f23537266f2e556ee70c15.tar.bz2 iced-ba755c69d648cace61f23537266f2e556ee70c15.zip |
Fulfill `InputMethod` requests only during `RedrawRequested`
-rw-r--r-- | core/src/shell.rs | 3 | ||||
-rw-r--r-- | winit/src/program.rs | 8 |
2 files changed, 7 insertions, 4 deletions
diff --git a/core/src/shell.rs b/core/src/shell.rs index d01233c7..a13492d5 100644 --- a/core/src/shell.rs +++ b/core/src/shell.rs @@ -78,6 +78,9 @@ impl<'a, Message> Shell<'a, Message> { } /// Requests the current [`InputMethod`] strategy. + /// + /// __Important__: This request will only be honored by the + /// [`Shell`] only during a [`window::Event::RedrawRequested`]. pub fn request_input_method<T: AsRef<str>>( &mut self, ime: &InputMethod<T>, diff --git a/winit/src/program.rs b/winit/src/program.rs index 302bc6c3..7ead4c3b 100644 --- a/winit/src/program.rs +++ b/winit/src/program.rs @@ -1025,19 +1025,19 @@ async fn run_instance<P, C>( ); #[cfg(feature = "unconditional-rendering")] - window.raw.request_redraw(); + window.request_redraw( + window::RedrawRequest::NextFrame, + ); match ui_state { user_interface::State::Updated { redraw_request: _redraw_request, - input_method, + .. } => { #[cfg(not( feature = "unconditional-rendering" ))] window.request_redraw(_redraw_request); - - window.request_input_method(input_method); } user_interface::State::Outdated => { uis_stale = true; |