[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24596: 25.1; `f10' behavior
bug#24596: 25.1; `f10' behavior
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
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