[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24596: 25.1; `f10' behavior

From: Eli Zaretskii
Subject: bug#24596: 25.1; `f10' behavior
Date: Mon, 03 Oct 2016 19:13:18 +0300

severity 24596 minor

> Date: Mon, 3 Oct 2016 08:41:45 -0700 (PDT)
> From: Drew Adams <address@hidden>
> `f10' used to just be bound to `tmm-menubar', for both TTY and
> graphic-display Emacs.  Now it is bound to `menu-bar-open'.

Not true: F10 in a GUI session, at least on Windows, always activated
the GUI menus from the menu bar.  I just tried that in Emacs 23.1.

What you say is only true for a TTY frame.  It was changed when
text-mode frames learned to display menus.

> 1. User option `tty-menu-open-use-tmm' makes `f10' use `tmm-menubar'
> instead, but only on TTY.  Why not also on graphic displays?

Because F10 never invoked tmm on GUI frames, at least not on
MS-Windows.  If you are asking for a new feature, then I guess it
could be added if enough people want it, but then the variable's name
will need to change, of course.

> Or why not have the option value let you choose: always
> `tmm-menubar', never `tmm-menubar', or `tmm-menubar only for TTY?
> (And of course rename it, if it is made to apply to more than TTYs.)

No reason, except that no one considered this important enough to
write the code.

> 2. Why can you not exit `menu-bar-open' (with nil
> `tty-menu-open-use-tmm')?  Why is ESC the only way to cancel (at least
> on MS Windows)?  Why are not the canonical Emacs ways of canceling
> implemented here (`C-g' and `ESC ESC ESC')?

ESC ESC works for me on MS-Windows GUI frames.  ESC ESC ESC and C-g
work for me on TTY frames.  C-g doesn't work on a GUI frame because
the menu is controlled by Windows, not by Emacs, and Windows doesn't
know about C-g.  IOW, this is a limitation we can do very little

> 3. The doc string of `menu-bar-open' says nothing about the behavior.
> It says nothing about what it does or what keys you can use, etc.  It
> should.  Instead, it passes you off to commands `x-menu-bar-open',
> `w32-menu-bar-open', `popup-menu', and `tmm-menubar'.

Details of how menus work depend on the toolkit, so we refer to the
toolkit-specific parts for the details.  However, patches are welcome
to describe what every toolkit does, presumably in the manual (because
I suspect the description will be long and complicated).

> Are the keys you can use different for `x-menu-bar-open' and
> `w32-menu-bar-open'?

Yes, I think so.

> The latter's doc tells you about keys you can use, but the former's
> doc says nothing about keys.

w32-menu-bar-open describes just one toolkit, whereas x-menu-bar-open
stands for several different ones.  I believe this is the reason.

> 4. The doc in the Emacs manual (node Menu Bar) is not too bad.  But
> AFAICT, `C-g' does NOT work (in MS Windows), as it says it does.  It
> also says that you can cancel using `ESC ESC ESC'.  But the doc of
> `w32-menu-bar-open' (correctly) says that a single `ESC' cancels.  Dunno
> whether this is a doc bug or the behavior (on Windows) is bugged.

You are trying to apply the description of what happens with TTY menus
to GUI menus.  They don't behave the same.

> 5. Overall, it looks a bit like someone wrote `menu-bar-open',
> `x-menu-bar-open', and `w32-menu-bar-open', and it was decided to
> replace `tmm-menubar' as the binding of `f10'.  But I don't really see
> the advantage, especially considering the lack of good doc.

The advantage is unified behavior across frame types, at least by
default.  The tty-menu-open-use-tmm was added later by popular demand;
initially I didn't imagine someone would want it when true menus are

reply via email to

[Prev in Thread] Current Thread [Next in Thread]