summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/application.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 35a36434..f5aa799c 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -123,7 +123,7 @@ pub trait Application: Sized {
Runtime::new(executor, Proxy::new(event_loop.create_proxy()))
};
- let (mut application, init_command) = Self::new();
+ let (mut application, init_command) = runtime.enter(|| Self::new());
runtime.spawn(init_command);
let subscription = application.subscription();
@@ -255,8 +255,7 @@ pub trait Application: Sized {
debug.update_finished();
}
- let subscription =
- runtime.enter(|| application.subscription());
+ let subscription = application.subscription();
runtime.track(subscription);
// Update window title
@@ -348,6 +347,19 @@ pub trait Application: Sized {
WindowEvent::CloseRequested => {
*control_flow = ControlFlow::Exit;
}
+ #[cfg(target_os = "macos")]
+ WindowEvent::KeyboardInput {
+ input:
+ winit::event::KeyboardInput {
+ virtual_keycode:
+ Some(winit::event::VirtualKeyCode::Q),
+ state: winit::event::ElementState::Pressed,
+ ..
+ },
+ ..
+ } if modifiers.logo() => {
+ *control_flow = ControlFlow::Exit;
+ }
#[cfg(feature = "debug")]
WindowEvent::KeyboardInput {
input: