Enable GUI Emacs without 'make install' on macOS (Bug #27645)
* nextstep/INSTALL: Correct it, and mention that Emacs can be run from 'src/emacs'. * src/nsterm.m (applicationDidFinishLaunching:): When Emacs is launched outside of a macOS application bundle, change its activation policy from the default 'prohibited' to 'regular'. ; * etc/NEWS: Mention the change on macOS.
This commit is contained in:
parent
e1d1aa69e8
commit
2c87aab579
3 changed files with 28 additions and 4 deletions
3
etc/NEWS
3
etc/NEWS
|
@ -1600,6 +1600,9 @@ debugger has been attached to it.
|
|||
** 'set-mouse-position' and 'set-mouse-absolute-pixel-position' work
|
||||
on macOS.
|
||||
|
||||
** Emacs can now be run as a GUI application from the command line on
|
||||
macOS.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
This file is part of GNU Emacs.
|
||||
|
|
|
@ -21,15 +21,23 @@ In the top-level directory, use:
|
|||
|
||||
(On macOS, --with-ns is enabled by default.)
|
||||
|
||||
This will compile all the files, but emacs will not be able to be run except
|
||||
in -nw (terminal) mode.
|
||||
Then run:
|
||||
|
||||
In order to run Emacs.app, you must run:
|
||||
make
|
||||
|
||||
This will compile all the files.
|
||||
|
||||
In order to run Emacs, you must run:
|
||||
|
||||
src/emacs
|
||||
|
||||
In order to install Emacs, you must run:
|
||||
|
||||
make install
|
||||
|
||||
This will assemble the app in nextstep/Emacs.app (i.e., the --prefix
|
||||
argument has no effect in this case).
|
||||
argument has no effect in this case). You can then move the Emacs.app
|
||||
bundle to a location of your choice.
|
||||
|
||||
If you pass the --disable-ns-self-contained option to configure, the lisp
|
||||
files will be installed under whatever 'prefix' is set to (defaults to
|
||||
|
|
13
src/nsterm.m
13
src/nsterm.m
|
@ -5497,6 +5497,19 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification
|
|||
object:nil];
|
||||
#endif
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
if ([NSApp activationPolicy] == NSApplicationActivationPolicyProhibited) {
|
||||
/* Set the app's activation policy to regular when we run outside
|
||||
of a bundle. This is already done for us by Info.plist when we
|
||||
run inside a bundle. */
|
||||
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
|
||||
[NSApp setApplicationIconImage:
|
||||
[EmacsImage
|
||||
allocInitFromFile:
|
||||
build_string("icons/hicolor/128x128/apps/emacs.png")]];
|
||||
}
|
||||
#endif
|
||||
|
||||
ns_send_appdefined (-2);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue