summaryrefslogtreecommitdiffstats
path: root/winit/src/multi_window.rs
diff options
context:
space:
mode:
authorLibravatar Richard <richardsoncusto@gmail.com>2022-07-27 15:37:48 -0300
committerLibravatar bungoboingo <shankern@protonmail.com>2023-01-09 11:27:04 -0800
commitdc86bd03733969033df7389c3d21e78ecc6291bb (patch)
tree7a37a4a9a78ba6c794dfb7915e1f7e7b81212449 /winit/src/multi_window.rs
parent35331d0a41a53b8ff5c642b8274c7377ae6c6182 (diff)
downloadiced-dc86bd03733969033df7389c3d21e78ecc6291bb.tar.gz
iced-dc86bd03733969033df7389c3d21e78ecc6291bb.tar.bz2
iced-dc86bd03733969033df7389c3d21e78ecc6291bb.zip
Introduce `close_requested` for `multi-window`
Diffstat (limited to '')
-rw-r--r--winit/src/multi_window.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs
index 3c720a69..6fbedc55 100644
--- a/winit/src/multi_window.rs
+++ b/winit/src/multi_window.rs
@@ -147,6 +147,9 @@ where
fn should_exit(&self) -> bool {
false
}
+
+ /// TODO(derezzedex)
+ fn close_requested(&self, window: window::Id) -> Self::Message;
}
/// Runs an [`Application`] with an executor, compositor, and the provided
@@ -296,7 +299,7 @@ async fn run_instance<A, E, C>(
>,
init_command: Command<A::Message>,
mut windows: HashMap<window::Id, winit::window::Window>,
- exit_on_close_request: bool,
+ _exit_on_close_request: bool,
) where
A: Application + 'static,
E: Executor + 'static,
@@ -684,9 +687,13 @@ async fn run_instance<A, E, C>(
if requests_exit(
&window_event,
window_state.state.modifiers(),
- ) && exit_on_close_request
- {
- break;
+ ) {
+ if let Some(id) =
+ window_ids.get(&window_id).cloned()
+ {
+ let message = application.close_requested(id);
+ messages.push(message);
+ }
}
window_state.state.update(