]> git.eshelyaron.com Git - emacs.git/commitdiff
Enable GUI Emacs without 'make install' on macOS (Bug #27645)
authorCharles A. Roelli <charles@aurox.ch>
Mon, 10 Jul 2017 19:08:14 +0000 (21:08 +0200)
committerCharles A. Roelli <charles@aurox.ch>
Sun, 23 Jul 2017 14:48:33 +0000 (16:48 +0200)
* 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.

etc/NEWS
nextstep/INSTALL
src/nsterm.m

index 4324d87991f76ff39b9bafbc64b035d06960e3d1..4cb02bf518adf50d3a1d390c32431bfc3b6135cc 100644 (file)
--- a/etc/NEWS
+++ b/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.
+
 \f
 ----------------------------------------------------------------------
 This file is part of GNU Emacs.
index 799cd4d866ae3857b43183fdfc764f9a1cb404b2..b7e84e018eeacf6f103490d2a70b41d7a6f998a9 100644 (file)
@@ -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
index a3c7031331a2c555d12a41316d2af6f2f83debb6..36d906a7cece5ed94d0102dfd61939d70b925379 100644 (file)
@@ -5497,6 +5497,19 @@ ns_term_shutdown (int sig)
         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);
 }