summaryrefslogtreecommitdiffstats
path: root/winit/src/multi_window
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/multi_window')
-rw-r--r--winit/src/multi_window/state.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/winit/src/multi_window/state.rs b/winit/src/multi_window/state.rs
index d22de961..ae353e3b 100644
--- a/winit/src/multi_window/state.rs
+++ b/winit/src/multi_window/state.rs
@@ -189,6 +189,17 @@ where
proxy: &EventLoopProxy<Event<A::Message>>,
) {
let new_windows = application.windows();
+
+ // Check for windows to close
+ for window_id in windows.keys() {
+ if !new_windows.iter().any(|(id, _)| id == window_id) {
+ proxy
+ .send_event(Event::CloseWindow(*window_id))
+ .expect("Failed to send message");
+ }
+ }
+
+ // Check for windows to spawn
for (id, settings) in new_windows {
if !windows.contains_key(&id) {
proxy