From: Ergus <spacibba@aol.com>
To: Juri Linkov <juri@linkov.net>
Cc: emacs-devel@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: New Context Menu
Date: Fri, 20 Aug 2021 14:21:26 +0200 [thread overview]
Message-ID: <20210820122126.tp6zna2ei2n5wrbw@Ergus> (raw)
In-Reply-To: <87eeaoio3v.fsf@mail.linkov.net>
On Fri, Aug 20, 2021 at 10:24:00AM +0300, Juri Linkov wrote:
>>>1. one click: down-mouse-1, select a menu item, release mouse-1;
>>>2. two clicks: click mouse-1, select a menu item by clicking mouse-1 again.
>>>
>>>Both ways work on xterm as well - you can easily select a menu item with
>>>one click on xterm too.
>>
>> For me only 1. works now as you describe on xterm.
>>
>> Whenever I try 2. it doesn't work the menu disappears when I release the
>> button either fast or slow. With the problem that releasing fast usually
>> selects the first item (generally Undo).
>
>Do other menus work for you? What do you see when clicking
>C-<down-mouse-1> bound to mouse-buffer-menu, or S-<down-mouse-1>
>bound to mouse-appearance-menu, or C-<down-mouse-3> bound to
>mouse-menu-bar-map, etc.
>
C-<down-mouse-1> and C-<down-mouse-3> Behave as you describe.
S-<down-mouse-1> Does not work in xterm
The issue is that context menu is bound to an "unmodified" mouse
event. If you try this on xterm:
(global-set-key [down-mouse-1] 'mouse-buffer-menu)
or
(global-set-key [down-mouse-3] 'mouse-buffer-menu)
Then you should notice the same issue.
Or when I press C-<down-mouse-1> (shows the menu), then release control,
and after that, release the mouse button: same behavior (menu disappears
and/or selects). So emacs is receiving the "up-mouse-1" as an event in
xterm. That's the issue.
>> There is the menu key that nobody seems to use because since 2007 nobody
>> noticed that it is not bound for xterm. Everywhere else (browsers,
>> editors, explorers) the menu key has the same effect than right click,
>> so if we want a binding, this is the right one. Sadly
>> execute-extended-command is bound to [menu]; but the user may know that
>> when context-menu is enabled, that binding is replaced for something
>> standard... (or add a custom to set it).
>
>Does this patch work for you? If yes, then we could create
>context-menu-mode-map active for context-menu-mode
>and add these keybindings to it.
>
>diff --git a/lisp/mouse.el b/lisp/mouse.el
>index d2a5200d8d..ecf95f11b5 100644
>--- a/lisp/mouse.el
>+++ b/lisp/mouse.el
>@@ -454,8 +455,13 @@ context-menu-mode
> (setq context-menu--old-mouse-3 (global-key-binding [mouse-3]))
> (global-unset-key [mouse-3])
> (setq context-menu--old-down-mouse-3 (global-key-binding [down-mouse-3]))
>- (global-set-key [down-mouse-3] context-menu-entry))
>+ (global-set-key [down-mouse-3] context-menu-entry)
>+ (setq context-menu--old-menu (global-key-binding [menu]))
>+ (global-set-key [menu] context-menu-entry))
> (t
>+ (when context-menu--old-menu
>+ (global-set-key [menu] context-menu--old-menu)
>+ (setq context-menu--old-menu nil))
> (if (not context-menu--old-down-mouse-3)
> (global-unset-key [down-mouse-3])
> (global-set-key [down-mouse-3] context-menu--old-down-mouse-3)
We need to fix the [menu] issue in xterm first, because right now there
is no [menu] key action. But I haven't receive any reply about that in
the other thread; so I don't know if it is actually an issue or a design
choice.
Hopefully Stefan (who added the commit in 2007) will reply about this.
Just a question:
If the context-menu-mode is a minor mode. Why the bindings are not added
in a context-menu-mode-map and avoids manually saving the -old commands?
Is there an issue with that?
next prev parent reply other threads:[~2021-08-20 12:21 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20210818120834.i3orh535tb2enpos.ref@Ergus>
2021-08-18 12:08 ` New Context Menu Ergus
2021-08-18 12:26 ` Eli Zaretskii
2021-08-18 12:43 ` Ergus
2021-08-18 13:30 ` Eli Zaretskii
2021-08-18 17:17 ` Ergus
2021-08-18 17:21 ` Eli Zaretskii
2021-08-18 17:32 ` Ergus
2021-08-18 16:50 ` Eli Zaretskii
2021-08-18 18:10 ` Ergus
2021-08-18 18:17 ` Eli Zaretskii
2021-08-18 19:23 ` Ergus
2021-08-18 19:28 ` Eli Zaretskii
2021-08-18 19:53 ` Ergus
2021-08-19 6:31 ` Eli Zaretskii
2021-08-19 7:07 ` Juri Linkov
2021-08-18 19:34 ` Eli Zaretskii
2021-08-18 18:58 ` Juri Linkov
2021-08-18 19:12 ` Eli Zaretskii
2021-08-19 7:05 ` Juri Linkov
2021-08-19 7:51 ` Eli Zaretskii
2021-08-20 7:13 ` Juri Linkov
2021-08-20 11:26 ` Eli Zaretskii
2021-08-20 11:41 ` Eli Zaretskii
2021-08-20 16:44 ` Juri Linkov
2021-08-20 12:26 ` Ergus
2021-08-20 12:36 ` Eli Zaretskii
2021-08-20 12:59 ` Ergus
2021-08-20 13:03 ` Ergus
2021-08-20 13:34 ` Eli Zaretskii
2021-08-20 17:36 ` Ergus
2021-08-20 18:05 ` Eli Zaretskii
2021-08-20 18:08 ` Ergus
2021-08-20 19:07 ` Eli Zaretskii
2021-08-21 6:20 ` Ergus
2021-08-21 6:53 ` Eli Zaretskii
2021-08-21 15:04 ` Ergus
2021-08-20 18:15 ` Ergus
2021-08-20 23:15 ` Michael Welsh Duggan
2021-08-18 14:04 ` Jean-Christophe Helary
2021-08-18 16:38 ` Iñigo Serna
2021-08-19 0:38 ` Jean-Christophe Helary
2021-08-19 7:08 ` Juri Linkov
2021-08-19 14:22 ` Jean-Christophe Helary
2021-08-19 7:01 ` Juri Linkov
2021-08-19 8:03 ` Eli Zaretskii
2021-08-19 14:11 ` Ergus
2021-08-19 15:48 ` Eli Zaretskii
2021-08-19 16:34 ` Yuri Khan
2021-08-20 7:14 ` Juri Linkov
2021-08-20 11:29 ` Eli Zaretskii
2021-08-20 16:49 ` Juri Linkov
2021-08-20 18:01 ` Eli Zaretskii
2021-08-23 7:33 ` Juri Linkov
2021-08-23 11:36 ` Eli Zaretskii
2021-08-23 16:04 ` Juri Linkov
2021-08-23 16:35 ` Eli Zaretskii
2021-08-23 17:42 ` Juri Linkov
2021-08-23 18:02 ` Ergus
2021-08-24 6:35 ` Juri Linkov
2021-08-24 8:00 ` Ergus
2021-08-24 11:44 ` Yuri Khan
2021-08-24 16:05 ` Ergus
2021-08-24 19:41 ` Yuri Khan
2021-08-24 20:48 ` Ergus
2021-08-19 13:57 ` Ergus
2021-08-20 7:24 ` Juri Linkov
2021-08-20 12:21 ` Ergus [this message]
2021-08-20 16:41 ` Juri Linkov
2021-08-21 4:33 ` Ergus via Emacs development discussions.
2021-08-22 8:56 ` Juri Linkov
2021-08-27 6:21 ` New Context Menu and mouse-1 Juri Linkov
2021-08-27 6:55 ` Eli Zaretskii
2021-08-27 17:03 ` Juri Linkov
2021-08-27 22:01 ` Stefan Monnier
2021-08-28 18:52 ` Juri Linkov
2021-08-29 16:53 ` Juri Linkov
2021-08-30 7:22 ` Juri Linkov
2021-08-30 12:54 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210820122126.tp6zna2ei2n5wrbw@Ergus \
--to=spacibba@aol.com \
--cc=emacs-devel@gnu.org \
--cc=juri@linkov.net \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).