>From 5dd66d7966d32e8c42e12e16b8682c52d4487d81 Mon Sep 17 00:00:00 2001 From: Alan Third Date: Wed, 25 Aug 2021 21:00:07 +0100 Subject: [PATCH] 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. --- src/nsfns.m | 5 +++++ src/nsterm.m | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/nsfns.m b/src/nsfns.m index c40367703d..07bcab1816 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1343,6 +1343,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side. 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 1c1f0c8f23..4bdc67c10b 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -5014,6 +5014,12 @@ static Lisp_Object ns_string_to_lispmod (const char *s) 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 (); -- 2.30.2