mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-23 22:01:31 +11:00
macOS: Emit LoopDestroyed on CMD+Q (#2073)
override applicationWillTerminate: Co-authored-by: Mads Marquart <mads@marquart.dk>
This commit is contained in:
parent
2c01e9e747
commit
c5eaa0ab69
|
@ -8,6 +8,7 @@ And please only add new entries to the top of this list, right below the `# Unre
|
|||
|
||||
# Unreleased
|
||||
|
||||
- On macOS, Fix emitting `Event::LoopDestroyed` on CMD+Q.
|
||||
- On macOS, fixed an issue where having multiple windows would prevent run_return from ever returning.
|
||||
- On Wayland, fix bug where the cursor wouldn't hide in GNOME.
|
||||
- On macOS, Windows, and Wayland, add `set_cursor_hittest` to let the window ignore mouse events.
|
||||
|
|
|
@ -34,6 +34,11 @@ pub static APP_DELEGATE_CLASS: Lazy<AppDelegateClass> = Lazy::new(|| unsafe {
|
|||
sel!(applicationDidFinishLaunching:),
|
||||
did_finish_launching as extern "C" fn(&Object, Sel, id),
|
||||
);
|
||||
decl.add_method(
|
||||
sel!(applicationWillTerminate:),
|
||||
will_terminate as extern "C" fn(&Object, Sel, id),
|
||||
);
|
||||
|
||||
decl.add_ivar::<*mut c_void>(AUX_DELEGATE_STATE_NAME);
|
||||
|
||||
AppDelegateClass(decl.register())
|
||||
|
@ -75,3 +80,10 @@ extern "C" fn did_finish_launching(this: &Object, _: Sel, _: id) {
|
|||
trace_scope!("applicationDidFinishLaunching:");
|
||||
AppState::launched(this);
|
||||
}
|
||||
|
||||
extern "C" fn will_terminate(_this: &Object, _: Sel, _: id) {
|
||||
trace!("Triggered `applicationWillTerminate`");
|
||||
// TODO: Notify every window that it will be destroyed, like done in iOS?
|
||||
AppState::exit();
|
||||
trace!("Completed `applicationWillTerminate`");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue