Subject: bug#45502: [PATCH] Prettier key bindings in NS menu entries

From: Alan Third <[email-masked]>
Date: Tue, 29 Dec 2020 13:53:55 +0000

On Tue, Dec 29, 2020 at 01:02:21PM +0100, Mattias Engdegård wrote:
> 28 dec. 2020 kl. 19.36 skrev Alan Third <[email-masked]>:
> 
> > I'm not sure either, but I guess the tabstop thing would look
> > something like: [...]
> 
> Actually seems to work! (In your place I would feign a complete lack
> of surprise.)

No feigning required. 😉

> Resulting patch attached.

Looks good. As I understand it GNUstep doesn't need this fix, so
please make it Cocoa only.

> 28 dec. 2020 kl. 23.46 skrev Daniel Martín <[email-masked]>:
> 
> > Thanks for the patch! It crashed Emacs when I tried to open the Gnus
> > menu bar (the Gnus menu bar is an extreme case with lots of bindings).
> 
> Confirmed, but that is unrelated to my patch. Alan, will you have a look?

There was a work-around for some problem related to waiting_for_input
in the old menu code that was lost when I copied the code from
xmenu.c, so I've put it back in and pushed to master. It looks like it
fixes the crash here.

> > I'm not sure if left-alignment or right-alignment would be better.  To
> > improve visuals, Apple seems to align with respect to the ⌘ symbol, but
> > that doesn't fit Emacs well because there's no single modifier that is
> > used in almost every keybinding (some use Control, some Meta).  Also,
> > it's not uncommon in Emacs to have keybindings that are a couple of
> > keymaps deep.
> 
> Right; it's easy to use either left or right alignment for the
> bindings. (I think we all agree that they should be kept in a
> separate column to the right of the menu strings in either case.)
> I'm going to experiment with translating modifiers and keys to the
> standard symbols. Not sure how to deal with modifiers that are
> unavailable, such as s-k when no Super modifier is available.

There's also the problem that we allow setting the left and right
modifiers separately, so option or command may not match both keys.

-- 
Alan Third