bug#81668: [PATCH] 30.2; NS; Empty Hide/Quit menus
Yavor Doganov <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Organization | The GNU Emacs Church (Bulgarian Eparchy) |
| Message-ID | <87bjav4pe0.GNU'[email protected]> |
On GNUstep, the "Hide" and "Quit" menus have submenus which are empty, so there's no way to hide or quit Emacs from the menu (actually there is File -> Quit but it's not easily discoverable). Please see the attached screenshot. In GNU Emacs 30.2 (build 2, x86_64-pc-linux-gnu, NS gnustep-gui-0.32.0) of 2026-07-04, modified by Debian built on patilan Windowing system distributor 'GNU', version 10.3.32 System Description: Debian GNU/Linux forky/sid Configured using: 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.2/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.2/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-ns --disable-ns-self-contained --without-gif --without-jpeg --without-png --without-rsvg --without-tiff --without-webp 'CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/emacs-30.2+1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' Configured features: ACL DBUS GMP GNUTLS GPM LCMS2 LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY NS PDUMPER SECCOMP SOUND SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER XIM ZLIB Important settings: value of $LANG: bg_BG.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix
hide-menu.png
(image/png, 23.8 KB) - not displayed
0001-NS-Populate-Hide-Quit-menus-on-GNUstep.patch
(text/plain, 1.3 KB)
From d73e5196e1f8c55457ee7e899ad04de73a81c675 Mon Sep 17 00:00:00 2001 From: Yavor Doganov <[email protected]> Date: Fri, 21 Aug 2026 14:56:00 +0300 Subject: [PATCH] NS: Populate Hide/Quit menus on GNUstep * src/nsmenu.m (ns_update_menubar): Populate Hide/Quit menus on GNUstep. (Bug#-1) --- src/nsmenu.m | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/nsmenu.m b/src/nsmenu.m index ab6e7d7140d..7de3b557746 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -388,6 +388,24 @@ [item setTitle:titleStr]; [submenu setTitle:titleStr]; [submenu removeAllItems]; +#ifdef NS_IMPL_GNUSTEP + if ([[submenu title] isEqualToString: @"Hide"] + || [[submenu title] isEqualToString: @"Quit"]) + { + [item setSubmenu: nil]; + [item setTarget: NSApp]; + if ([[item title] isEqualToString: @"Hide"]) + { + [item setAction: @selector (hide:)]; + [item setKeyEquivalent: @" s-h"]; + } + else + { + [item setAction: @selector (terminate:)]; + [item setKeyEquivalent: @" C-x C-c"]; + } + } +#endif } else submenu = [menu addSubmenuWithTitle: wv->name]; -- 2.55.0