[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Pop up context menu (at point) with <menu> key rather than mouse
From: |
Yuri Khan |
Subject: |
Re: Pop up context menu (at point) with <menu> key rather than mouse |
Date: |
Sun, 11 Nov 2018 00:27:17 +0700 |
On Sun, Nov 11, 2018 at 12:11 AM N. Jackson <nljlistbox2@gmail.com> wrote:
> > (global-set-key [C-down-mouse-3]
> > `(menu-item ,(purecopy "Menu Bar") ignore
> > :filter (lambda (_)
> > (if (zerop (or (frame-parameter nil 'menu-bar-lines) 0))
> > (mouse-menu-bar-map)
> > (mouse-menu-major-mode-map)))))
>
> Hmm... where is `menu-item' defined?
See the ‘`’ character? That indicates that the following is a quoted
list (except that the part prefixed with ‘,’ is not quoted. Anyway,
that is a list whose first element is the symbol 'menu-item, and that
list is passed to ‘global-set-key’.
So you want to go look what ‘global-set-key’ does with that. You might
know, or learn from the source, that ‘global-set-key’ is a wrapper
function around ‘define-key’. Then, C-h f define-key tells you its
last argument can take a number of forms, none of which seem to match
a list '(menu-item …), except possibly this:
DEF is anything that can be a key’s definition:
[…]
or an extended menu item definition.
(See info node ‘(elisp)Extended Menu Items’.)
So you dive into that info node, and sure enough, it explains that an
extended menu item is a list starting with 'menu-item.