unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
@ 2022-09-01 13:28 Manuel Giraud
  2022-09-02  1:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 11+ messages in thread
From: Manuel Giraud @ 2022-09-01 13:28 UTC (permalink / raw)
  To: 57522

[-- Attachment #1: Type: text/plain, Size: 88 bytes --]


Hi,

Here is a patch that make the submenu indicator " >" appear with X11
no-toolkit.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-src-menu.c-single_menu_item-Fix-submenu-indicator-on.patch --]
[-- Type: text/x-patch, Size: 849 bytes --]

From 81f668858923f88b99bf4caa8f9f230c73aa5eb2 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@ledu-giraud.fr>
Date: Thu, 1 Sep 2022 15:26:11 +0200
Subject: [PATCH] ; * src/menu.c (single_menu_item): Fix submenu indicator on
 X11

---
 src/menu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/menu.c b/src/menu.c
index eeb0c9a7e5..7a8e930cf8 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -408,7 +408,8 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk
   }
 
   if ((FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
-       || FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame)))
+       || FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame))
+       || FRAME_WINDOW_P (XFRAME (Vmenu_updating_frame)))
       && !NILP (map))
     /* Indicate visually that this is a submenu.  */
     {
-- 
2.37.2


[-- Attachment #3: Type: text/plain, Size: 7585 bytes --]




In GNU Emacs 29.0.50 (build 1, x86_64-unknown-openbsd7.2, cairo version
 1.17.6) of 2022-09-01 built on elite.giraud
Repository revision: e7193902b23deb842f55c1cd9100b807e199f4bd
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: OpenBSD elite.giraud 7.2 GENERIC.MP#713 amd64

Configured using:
 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
 --with-x-toolkit=no --without-sound --without-compress-install
 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG
SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Change Log

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  icomplete-mode: t
  display-time-mode: t
  display-battery-mode: t
  shell-dirtrack-mode: t
  global-so-long-mode: t
  repeat-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/manuel/.emacs.d/elpa/transient-20220806.2224/transient hides /home/manuel/emacs/share/emacs/29.0.50/lisp/transient

Features:
(shadow emacsbug whitespace magit-patch misearch multi-isearch mailalias
gnus-fun sort gnus-cite mail-extr textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml
gnus-topic mm-archive url-http url-gw url-cache url-auth qp utf-7 imap
rfc2104 nndoc nndraft nnmh network-stream nsm nnfolder nnml gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache nnrss mm-url
w3m doc-view jka-compr image-mode exif w3m-hist w3m-fb bookmark-w3m
w3m-ems w3m-favicon w3m-image tab-line w3m-proc w3m-util pulse
executable vc-git vc-dispatcher vc-svn bug-reference magit-extras
face-remap magit-bookmark magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode diff
diff-mode git-commit log-edit pcvs-util add-log magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process with-editor magit-mode transient magit-git magit-base
magit-section dash compat-27 compat-26 compat compat-macs paredit
edmacro icomplete time battery exwm-randr xcb-randr exwm-config exwm
exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor
xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb
xcb-xproto xcb-types xcb-debug kmacro server stimmung-themes
modus-operandi-theme modus-themes ytdious osm mingus libmpdee reporter
edebug debug backtrace transmission diary-lib diary-loaddefs color
calc-bin calc-ext calc calc-loaddefs rect calc-macs w3m-load mu4e
mu4e-org mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-draft
mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark
mu4e-message flow-fill mule-util hl-line mu4e-contacts mu4e-update
mu4e-folders mu4e-server mu4e-context mu4e-vars mu4e-helpers mu4e-config
bookmark ido supercite regi ebdb-message ebdb-gnus gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus
gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa epg
rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr ebdb-mua ebdb-com crm
ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe eieio-base
pcase timezone org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete org-list org-faces
org-entities org-version ob-emacs-lisp ob-core ob-eval org-table
oc-basic bibtex ol org-keys oc org-compat org-macs org-loaddefs
find-func cal-menu calendar cal-loaddefs visual-basic-mode cl web-mode
disp-table erlang-start smart-tabs-mode skeleton cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
slime-asdf grep slime-tramp tramp rx tramp-loaddefs trampver
tramp-integration cus-edit cus-load wid-edit files-x tramp-compat shell
pcomplete parse-time iso8601 time-date ls-lisp format-spec slime-fancy
slime-indentation slime-cl-indent cl-indent slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations advice
bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
derived cl-extra help-mode lisp-mnt gud apropos compile
text-property-search etags fileloop generator xref project arc-mode
archive-mode noutline outline icons pp comint ansi-color ring hyperspec
thingatpt slime-autoloads dired-aux dired-x dired dired-loaddefs so-long
notifications dbus xml repeat easy-mmode auctex-autoloads tex-site
debbugs-autoloads hyperbole-autoloads magit-autoloads
git-commit-autoloads magit-section-autoloads dash-autoloads
paredit-autoloads rust-mode-autoloads stimmung-themes-autoloads
transient-autoloads with-editor-autoloads info compat-autoloads
ytdious-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo xinput2 x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1032747 586595)
 (symbols 48 61631 6)
 (strings 32 285455 36480)
 (string-bytes 1 8844141)
 (vectors 16 175546)
 (vector-slots 8 2938204 87650)
 (floats 8 617 399)
 (intervals 56 2351 744)
 (buffers 1000 35))

-- 
Manuel Giraud

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-01 13:28 bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit Manuel Giraud
@ 2022-09-02  1:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  6:33   ` Eli Zaretskii
  2022-09-02  6:34   ` Manuel Giraud
  0 siblings, 2 replies; 11+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02  1:16 UTC (permalink / raw)
  To: Manuel Giraud; +Cc: 57522

Manuel Giraud <manuel@ledu-giraud.fr> writes:

> Here is a patch that make the submenu indicator " >" appear with X11
> no-toolkit.

That isn't how submenus are supposed to work in the oldXMenu library.
Each submenu is actually a "pane"; you can click on an item in one pane,
which activates the next pane.  An arrow indicator doesn't make sense,
since the next pane will not be activated where the indicator points to.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  1:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02  6:33   ` Eli Zaretskii
  2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  6:34   ` Manuel Giraud
  1 sibling, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2022-09-02  6:33 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522, manuel

> Cc: 57522@debbugs.gnu.org
> Date: Fri, 02 Sep 2022 09:16:48 +0800
> From:  Po Lu via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> Manuel Giraud <manuel@ledu-giraud.fr> writes:
> 
> > Here is a patch that make the submenu indicator " >" appear with X11
> > no-toolkit.
> 
> That isn't how submenus are supposed to work in the oldXMenu library.
> Each submenu is actually a "pane"; you can click on an item in one pane,
> which activates the next pane.  An arrow indicator doesn't make sense,
> since the next pane will not be activated where the indicator points to.

How is this different from what happens with menus on TTY frames?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  1:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  6:33   ` Eli Zaretskii
@ 2022-09-02  6:34   ` Manuel Giraud
  2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 11+ messages in thread
From: Manuel Giraud @ 2022-09-02  6:34 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522

Po Lu <luangruo@yahoo.com> writes:

> Manuel Giraud <manuel@ledu-giraud.fr> writes:
>
>> Here is a patch that make the submenu indicator " >" appear with X11
>> no-toolkit.
>
> That isn't how submenus are supposed to work in the oldXMenu library.
> Each submenu is actually a "pane"; you can click on an item in one pane,
> which activates the next pane.  An arrow indicator doesn't make sense,
> since the next pane will not be activated where the indicator points
> to.

Ok but then there is no visual indication whether a menu entry leads to
a submenu pane or an action.
-- 
Manuel Giraud





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  6:33   ` Eli Zaretskii
@ 2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02 10:33       ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02  8:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 57522, manuel

Eli Zaretskii <eliz@gnu.org> writes:

> How is this different from what happens with menus on TTY frames?

TTY menus don't open submenus on the sides?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  6:34   ` Manuel Giraud
@ 2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  9:13       ` Manuel Giraud
  2022-09-02 10:39       ` Eli Zaretskii
  0 siblings, 2 replies; 11+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02  8:25 UTC (permalink / raw)
  To: Manuel Giraud; +Cc: 57522

Manuel Giraud <manuel@ledu-giraud.fr> writes:

> Ok but then there is no visual indication whether a menu entry leads to
> a submenu pane or an action.

I guess there isn't, but that info should be fairly obvious from the
entry name, right?





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02  9:13       ` Manuel Giraud
  2022-09-02 10:39       ` Eli Zaretskii
  1 sibling, 0 replies; 11+ messages in thread
From: Manuel Giraud @ 2022-09-02  9:13 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522

Po Lu <luangruo@yahoo.com> writes:

> Manuel Giraud <manuel@ledu-giraud.fr> writes:
>
>> Ok but then there is no visual indication whether a menu entry leads to
>> a submenu pane or an action.
>
> I guess there isn't, but that info should be fairly obvious from the
> entry name, right?

I don't find them always obvious.  Some examples: "File/Print",
"Edit/(Search|Incremental Search|Replace)".  In Gnus also
"Groups/(Mark|Move|Sort)".
-- 
Manuel Giraud





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02 10:33       ` Eli Zaretskii
  2022-09-02 11:01         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2022-09-02 10:33 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522, manuel

> From: Po Lu <luangruo@yahoo.com>
> Cc: manuel@ledu-giraud.fr,  57522@debbugs.gnu.org
> Date: Fri, 02 Sep 2022 16:25:01 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > How is this different from what happens with menus on TTY frames?
> 
> TTY menus don't open submenus on the sides?

What do you mean by "on the sides"?

AFAIK, all the implementations of menus that use the "not
USE_X_TOOLKIT && not USE_GTK" version of x_menu_show from xmenu.c
behave the same wrt locating sub-menus.  And if you are asking about
alignment of sub-menus with their parent menu item, then no, there's
no alignment.  Never was.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  9:13       ` Manuel Giraud
@ 2022-09-02 10:39       ` Eli Zaretskii
  1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-09-02 10:39 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522, manuel

> Cc: 57522@debbugs.gnu.org
> Date: Fri, 02 Sep 2022 16:25:34 +0800
> From:  Po Lu via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> Manuel Giraud <manuel@ledu-giraud.fr> writes:
> 
> > Ok but then there is no visual indication whether a menu entry leads to
> > a submenu pane or an action.
> 
> I guess there isn't, but that info should be fairly obvious from the
> entry name, right?

No, it isn't.  Or at least it doesn't have to be.  Which is why the
">" part is important.  It emulates what toolkit menus do when a menu
item has sub-menus.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02 10:33       ` Eli Zaretskii
@ 2022-09-02 11:01         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02 11:14           ` Eli Zaretskii
  0 siblings, 1 reply; 11+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02 11:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 57522, manuel

Eli Zaretskii <eliz@gnu.org> writes:

> AFAIK, all the implementations of menus that use the "not
> USE_X_TOOLKIT && not USE_GTK" version of x_menu_show from xmenu.c
> behave the same wrt locating sub-menus.

TTY menus use xmenu.c?

> And if you are asking about alignment of sub-menus with their parent
> menu item, then no, there's no alignment.  Never was.

Hmm.  Then I have no more objections to this change, I guess, since it
seems to have worked well enough for everyone else.





^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit
  2022-09-02 11:01         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02 11:14           ` Eli Zaretskii
  0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2022-09-02 11:14 UTC (permalink / raw)
  To: Po Lu; +Cc: 57522, manuel

> From: Po Lu <luangruo@yahoo.com>
> Cc: manuel@ledu-giraud.fr,  57522@debbugs.gnu.org
> Date: Fri, 02 Sep 2022 19:01:14 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > AFAIK, all the implementations of menus that use the "not
> > USE_X_TOOLKIT && not USE_GTK" version of x_menu_show from xmenu.c
> > behave the same wrt locating sub-menus.
> 
> TTY menus use xmenu.c?

No, but the TTY menu code follows that of xmenu.c closely.  And MSDOS
actually uses xmenu.c code, yes.





^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-09-02 11:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-01 13:28 bug#57522: 29.0.50; Fix submenu indicator on X11 no toolkit Manuel Giraud
2022-09-02  1:16 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02  6:33   ` Eli Zaretskii
2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02 10:33       ` Eli Zaretskii
2022-09-02 11:01         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02 11:14           ` Eli Zaretskii
2022-09-02  6:34   ` Manuel Giraud
2022-09-02  8:25     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02  9:13       ` Manuel Giraud
2022-09-02 10:39       ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).