diff options
| author | 2023-02-15 11:28:36 -0800 | |
|---|---|---|
| committer | 2023-02-15 11:28:36 -0800 | |
| commit | 367fea5dc8e94584334e880970126b40a046bfa6 (patch) | |
| tree | 8678a00263edd4e4ef8dfc2abf2b6b4c9ca7e067 /winit/src/multi_window | |
| parent | 0a643287deece9234b64cc843a9f6ae3e6e4806e (diff) | |
| download | iced-367fea5dc8e94584334e880970126b40a046bfa6.tar.gz iced-367fea5dc8e94584334e880970126b40a046bfa6.tar.bz2 iced-367fea5dc8e94584334e880970126b40a046bfa6.zip  | |
Redraw request events for multiwindow.
Diffstat (limited to '')
| -rw-r--r-- | winit/src/multi_window.rs | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index ad65e6a5..430e6706 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -25,6 +25,7 @@ pub use iced_native::application::{Appearance, StyleSheet};  use iced_native::window::Action;  use std::collections::HashMap;  use std::mem::ManuallyDrop; +use std::time::Instant;  #[cfg(feature = "trace")]  pub use crate::Profiler; @@ -402,7 +403,7 @@ async fn run_instance<A, E, C>(                      let (filtered, remaining): (Vec<_>, Vec<_>) =                          events.iter().cloned().partition(                              |(window_id, _event): &( -                                Option<crate::window::Id>, +                                Option<window::Id>,                                  iced_native::event::Event,                              )| {                                  *window_id == Some(id) || *window_id == None @@ -410,10 +411,14 @@ async fn run_instance<A, E, C>(                          );                      events.retain(|el| remaining.contains(el)); -                    let filtered: Vec<_> = filtered +                    let mut filtered: Vec<_> = filtered                          .into_iter()                          .map(|(_id, event)| event)                          .collect(); +                    filtered.push(iced_native::Event::Window( +                        id, +                        window::Event::RedrawRequested(Instant::now()), +                    ));                      let cursor_position =                          states.get(&id).unwrap().cursor_position(); @@ -450,7 +455,7 @@ async fn run_instance<A, E, C>(                              user_interface::State::Outdated,                          )                      { -                        let state = &mut states.get_mut(&id).unwrap(); +                        let state = states.get_mut(&id).unwrap();                          let pure_states: HashMap<_, _> =                              ManuallyDrop::into_inner(interfaces)                                  .drain()  | 
