diff options
author | 2022-07-27 15:37:48 -0300 | |
---|---|---|
committer | 2023-01-09 11:27:04 -0800 | |
commit | dc86bd03733969033df7389c3d21e78ecc6291bb (patch) | |
tree | 7a37a4a9a78ba6c794dfb7915e1f7e7b81212449 /winit/src/multi_window.rs | |
parent | 35331d0a41a53b8ff5c642b8274c7377ae6c6182 (diff) | |
download | iced-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.rs | 15 |
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( |