summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2023-02-15 11:28:36 -0800
committerLibravatar Bingus <shankern@protonmail.com>2023-02-15 11:28:36 -0800
commit367fea5dc8e94584334e880970126b40a046bfa6 (patch)
tree8678a00263edd4e4ef8dfc2abf2b6b4c9ca7e067 /winit/src
parent0a643287deece9234b64cc843a9f6ae3e6e4806e (diff)
downloadiced-367fea5dc8e94584334e880970126b40a046bfa6.tar.gz
iced-367fea5dc8e94584334e880970126b40a046bfa6.tar.bz2
iced-367fea5dc8e94584334e880970126b40a046bfa6.zip
Redraw request events for multiwindow.
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/multi_window.rs11
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()