Add ability to bring only the selected frame to the front (bug#48865)

Causes ‘ns-hide-emacs’ to layer the selected frame in front of every other
application’s windows, and give that frame keyboard focus, when called with
'activate-front.

* src/nsfns.m (Fns_hide_emacs): Allow activating only selected frame.
This commit is contained in:
Matt Beshara 2021-06-06 13:06:47 +10:00 committed by Alan Third
parent e775ef2f57
commit 57950515ec

View file

@ -1953,8 +1953,11 @@ Frames are listed from topmost (first) to bottommost (last). */)
doc: /* If ON is non-nil, the entire Emacs application is hidden.
Otherwise if Emacs is hidden, it is unhidden.
If ON is equal to `activate', Emacs is unhidden and becomes
the active application. */)
(Lisp_Object on)
the active application.
If ON is equal to `activate-front', Emacs is unhidden and
becomes the active application, but only the selected frame
is layered in front of the windows of other applications. */)
(Lisp_Object on)
{
check_window_system (NULL);
if (EQ (on, intern ("activate")))
@ -1962,6 +1965,12 @@ Frames are listed from topmost (first) to bottommost (last). */)
[NSApp unhide: NSApp];
[NSApp activateIgnoringOtherApps: YES];
}
else if (EQ (on, intern ("activate-front")))
{
[NSApp unhide: NSApp];
[[NSRunningApplication currentApplication]
activateWithOptions: NSApplicationActivateIgnoringOtherApps];
}
else if (NILP (on))
[NSApp unhide: NSApp];
else