emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 2c87aab: Enable GUI Emacs without 'make install' on


From: Charles A. Roelli
Subject: [Emacs-diffs] master 2c87aab: Enable GUI Emacs without 'make install' on macOS (Bug #27645)
Date: Sun, 23 Jul 2017 10:58:32 -0400 (EDT)

branch: master
commit 2c87aab57946b95d67b664259f30e64468d08544
Author: Charles A. Roelli <address@hidden>
Commit: Charles A. Roelli <address@hidden>

    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.
---
 etc/NEWS         |  3 +++
 nextstep/INSTALL | 16 ++++++++++++----
 src/nsterm.m     | 13 +++++++++++++
 3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 4324d87..4cb02bf 100644
--- 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.
+
 
 ----------------------------------------------------------------------
 This file is part of GNU Emacs.
diff --git a/nextstep/INSTALL b/nextstep/INSTALL
index 799cd4d..b7e84e0 100644
--- a/nextstep/INSTALL
+++ b/nextstep/INSTALL
@@ -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
diff --git a/src/nsterm.m b/src/nsterm.m
index a3c7031..36d906a 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -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);
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]