summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Oliver <git@mavit.org.uk>2021-06-22 15:17:28 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-06-22 15:17:28 +0200
commit57ec4aadc65389f6df5a173cfbff0a551b3ee25d (patch)
tree84c599b97cddf3d0a5c3a671e5532326ae3633ff
parent00501d74d3f9642e69b96bcfdb0cc9228d71aa3b (diff)
downloademacs-57ec4aadc65389f6df5a173cfbff0a551b3ee25d.tar.gz
emacs-57ec4aadc65389f6df5a173cfbff0a551b3ee25d.tar.bz2
emacs-57ec4aadc65389f6df5a173cfbff0a551b3ee25d.zip
Advertise support for Startup Notification when built with GTK
* etc/emacsclient.desktop, etc/emacsclient.desktop: Specify StartupNotify=true. * configure.ac (USE_STARTUP_NOTIFICATION): New variable, yes iff HAVE_GTK. * Makefile.in (install-etc): Remove StartupNotify=true from etc/*.desktop unless USE_STARTUP_NOTIFICATION (bug#48783).
-rw-r--r--Makefile.in7
-rw-r--r--configure.ac5
-rw-r--r--etc/NEWS6
-rw-r--r--etc/emacs.desktop1
-rw-r--r--etc/emacsclient.desktop1
5 files changed, 20 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in
index 474441fa93c..b7502880230 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -100,6 +100,8 @@ FIND_DELETE = @FIND_DELETE@
HAVE_NATIVE_COMP = @HAVE_NATIVE_COMP@
+USE_STARTUP_NOTIFICATION = @USE_STARTUP_NOTIFICATION@
+
# ==================== Where To Install Things ====================
# Location to install Emacs.app under GNUstep / macOS.
@@ -706,11 +708,15 @@ install-man:
## Note: emacs22 does not have all the resolutions.
EMACS_ICON=emacs
+ifeq (${USE_STARTUP_NOTIFICATION},no)
+USE_STARTUP_NOTIFICATION_SED_CMD=-e "/^StartupNotify=true$$/d"
+endif
install-etc:
umask 022; ${MKDIR_P} "$(DESTDIR)${desktopdir}"
tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \
sed -e "/^Exec=emacs/ s/emacs/${EMACS_NAME}/" \
-e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \
+ $(USE_STARTUP_NOTIFICATION_SED_CMD) \
${srcdir}/etc/emacs.desktop > $${tmp}; \
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \
rm -f $${tmp}
@@ -718,6 +724,7 @@ install-etc:
client_name=`echo emacsclient | sed '$(TRANSFORM)'`${EXEEXT}; \
sed -e "/^Exec=emacsclient/ s|emacsclient|${bindir}/$${client_name}|" \
-e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \
+ $(USE_STARTUP_NOTIFICATION_SED_CMD) \
${srcdir}/etc/emacsclient.desktop > $${tmp}; \
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/$${client_name}.desktop"; \
rm -f $${tmp}
diff --git a/configure.ac b/configure.ac
index c828f8d7828..830f33844b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2892,6 +2892,11 @@ fi
AC_SUBST(SETTINGS_CFLAGS)
AC_SUBST(SETTINGS_LIBS)
+USE_STARTUP_NOTIFICATION=no
+if test "${HAVE_GTK}" = "yes"; then
+ USE_STARTUP_NOTIFICATION=yes
+fi
+AC_SUBST(USE_STARTUP_NOTIFICATION)
dnl SELinux is available for GNU/Linux only.
HAVE_LIBSELINUX=no
diff --git a/etc/NEWS b/etc/NEWS
index 3c7d5ca10be..40c7c931624 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -91,6 +91,12 @@ proper pty support that Emacs needs.
* Startup Changes in Emacs 28.1
+---
+** In GTK builds, Emacs now supports startup notification.
+This means that Emacs won't steal keyboard focus upon startup
+(when started via the Desktop) if the user is typing into another
+application.
+
** Emacs can support 24-bit color TTY without terminfo database.
If your text-mode terminal supports 24-bit true color, but your system
lacks the terminfo database, you can instruct Emacs to support 24-bit
diff --git a/etc/emacs.desktop b/etc/emacs.desktop
index 2e6496e58c9..81c53c6121d 100644
--- a/etc/emacs.desktop
+++ b/etc/emacs.desktop
@@ -8,5 +8,6 @@ Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
+StartupNotify=true
StartupWMClass=Emacs
Keywords=Text;Editor;
diff --git a/etc/emacsclient.desktop b/etc/emacsclient.desktop
index 3feb83c7290..2c1edb4b66a 100644
--- a/etc/emacsclient.desktop
+++ b/etc/emacsclient.desktop
@@ -8,5 +8,6 @@ Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
+StartupNotify=true
StartupWMClass=Emacsd
Keywords=Text;Editor;