From: Peter Oliver Date: Tue, 22 Jun 2021 13:17:28 +0000 (+0200) Subject: Advertise support for Startup Notification when built with GTK X-Git-Tag: emacs-28.0.90~2059 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=57ec4aadc65389f6df5a173cfbff0a551b3ee25d;p=emacs.git 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). --- 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;