These tests were performed on Windows.
As documented here
if the binding on a menu item is nil, then the mnenu item is
unselectable.
But this elisp code:
(x-popup-menu t (list "TITLE" (list
"PANE"
(list "menu item 1" nil)
(list "menu item 2" nil))))
...shows a menu in which both items are selectable.
This bug may be relevant to bug #11138. One of the proposed fixes for
#11138 at the time of this report is to render a multi-line dialog
box
as a menu, with each "line" in the message displayed as an
unselectable
menu item. But this brief test seems to indicate that the
"unselectable" menu items are not really unselectable, at least on
Windows.
In that case the proposed fix would be unsatisfactory.
I'd like to also raise a documentation bug, as well: there ought to
be
examples showing how to use x-popup-menu, on the page I cited above.
A few simple examples will make this method much more usable.
In particular, if the result I reported here is due to incorrect usage on
my part,
providing examples in the documentation is the way to fix it. Even if I am
using
this function correctly, this example (and others) ought to be put into the
documentation to illustrate the proper use of "unselectable" menu items.
Thanks.
In GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601)
of 2011-03-10 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 6.1.7601
configured using `configure --with-gcc (4.5) --no-opt --cflags
-Ic:/imagesupport/include'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENU
value of $XMODIFIERS: nil
locale-coding-system: cp1252
default enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
auto-revert-mode: t
recentf-mode: t
yas/global-mode: t
yas/minor-mode: t
shell-dirtrack-mode: t
global-hl-line-mode: t
hl-line-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
o o f " C-p C-a <escape> SPC C-n C-n C-n C-c C-e C-p
C-p C-e <escape> <backspace> <backspace> C-n
<escape>
b <escape> d <backspace> C-d C-d C-d C-d C-d C-d C-p
C-p C-a <escape> SPC <escape> C-f C-c C-e C-p C-p C-a
<escape> SPC C-n C-n C-n C-w C-y C-y C-p C-p C-p C-k
C-k C-k C-k C-p C-e <backspace> <backspace> <backspace>
<escape> C-b C-n C-e <escape> b <escape> b C-p C-b
SPC i t e m SPC <escape> d f <backspace> 1 C-n <escape>
b <backspace> i t e m SPC 2 <escape> d <escape> b C-b
C-b C-b C-b C-b SPC C-p C-p C-p C-a <escape> SPC <escape>
C-f C-c C-e C-p C-b : C-n C-a <escape> SPC C-n C-w
C-y C-y <escape> b <escape> b <escape> b <escape> b
C-p C-p C-n C-n - - s p a c e <escape> d <escape> d
<escape> d C-n <escape> SPC C-p C-p C-e <backspace>
<backspace> C-n C-n C-p C-b C-b <return> C-p C-p C-p
C-e C-b <backspace> C-n C-e <backspace> C-n <backspace>
C-n C-a <tab> C-e ) C-n <escape> SPC <escape> C-b C-c
C-e C-p C-n C-n C-n C-n C-k C-k C-y C-n C-y C-n C-n
<escape> SPC <escape> C-b C-c C-e C-n C-n C-n C-n C-e
C-n C-b C-b C-b <backspace> 3 C-n C-n C-k C-k C-k C-k
C-k C-k <return> <escape> SPC <escape> C-b C-c C-e
<escape> SPC C-n C-n C-n C-n C-n C-n C-n C-w C-y C-p
C-p C-p C-p C-p C-p C-p <tab> <escape> SPC <escape>
C-f <escape> C-r C-p C-p C-p C-p C-p C-p C-b C-b C-b
C-b <return> C-a C-p <escape> SPC <escape> C-f
<escape>
C-r C-u C-x TAB <escape> x r e p o r t - g n u - b
<tab> <backspace> <backspace> <backspace>
<backspace>
<backspace> <tab> <return>
Recent messages:
Quit
Mark set [4 times]
Mark activated
Quit
Mark set [3 times]
Quit
Mark set
Quit
Mark set [2 times]
Mark activated [2 times]
Load-path shadows:
/users/dino/elisp/refill hides c:/emacs/lisp/textmodes/refill
Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailabbrev nnheader
gnus-util netrc gmm-utils mailheader canlock sha1 hex-util hashcash
emacsbug newcomment dabbrev tabify cc-mode cc-fonts cc-menus cc-cmds
parse-time timezone dired-aux ansi-color multi-isearch finder-inf
time-stamp mail-utils url-cache url-http tls mail-parse rfc2231
rfc2047
rfc2045 qp ietf-drums time-date url-gw url-auth url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-util
url-parse url-vars mm-util mail-prsvr mailcap autorevert server
thesaurus recentf tree-widget synonyms-autoloads package lorem
cperl-mode smarter-compile js-mode-fixups jsshell-bundle jsshell
flyphpcs hideshow cc-styles cc-align cc-engine cc-vars cc-defs
flymake-cursor byte-opt warnings bytecomp byte-compile flymake
compile
flymake-fixups dired-fixups dired regexp-opt defaultcontent thingatpt
csslint yasnippet dropdown-list derived easy-mmode help-mode view
assoc
cl cl-19 powershell shell comint ring tfs skeleton edmacro kmacro
httpget hl-line advice help-fns advice-preload cus-edit easymenu
cus-start cus-load wid-edit tooltip ediff-hook vc-hooks
lisp-float-type
mwheel dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd
fontset
image fringe lisp-mode register page menu-bar rfn-eshadow timer
select
scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech
european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook
help
simple abbrev loaddefs button minibuffer faces cus-face files
text-properties overlay md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote make-network-process
multi-tty
emacs)