diff options
Diffstat (limited to 'winit/src')
-rw-r--r-- | winit/src/application.rs | 18 |
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: |