diff options
author | Alan Third <alan@idiocy.org> | 2021-08-25 21:00:07 +0100 |
---|---|---|
committer | Alan Third <alan@idiocy.org> | 2021-08-29 10:22:15 +0100 |
commit | b0fe06e656209581466f60ac3b9ea98bb6acecbf (patch) | |
tree | 7b58950a5f94b4e88e10de4e180f865908388fb0 | |
parent | 8fb32387c1c9370cb53635b8ff94e4aa90d034f7 (diff) | |
download | emacs-b0fe06e656209581466f60ac3b9ea98bb6acecbf.tar.gz |
Disable the NS app when no frames are left (bug#14619, bug#21357, bug#23586)
* src/nsfns.m (Fx_create_frame): Enable the app.
* src/nsterm.m (ns_delete_terminal): Disable the app.
-rw-r--r-- | src/nsfns.m | 5 | ||||
-rw-r--r-- | src/nsterm.m | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/nsfns.m b/src/nsfns.m index c40367703db..07bcab1816b 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1343,6 +1343,11 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame, f->output_data.ns->in_animation = NO; +#ifdef NS_IMPL_COCOA + /* If the app has previously been disabled, start it up again. */ + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; +#endif + [[EmacsView alloc] initFrameFromEmacs: f]; ns_icon (f, parms); diff --git a/src/nsterm.m b/src/nsterm.m index 1c1f0c8f239..4bdc67c10b5 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5014,6 +5014,12 @@ ns_delete_terminal (struct terminal *terminal) block_input (); +#ifdef NS_IMPL_COCOA + /* Rather than try to clean up the NS environment we can just + disable the app and leave it waiting for any new frames. */ + [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; +#endif + image_destroy_all_bitmaps (dpyinfo); ns_delete_display (dpyinfo); unblock_input (); |