--- Begin Message ---
Subject: |
last-nonmenu-event and sub-menus |
Date: |
Wed, 18 Jun 2008 19:06:54 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
last-nonmenu-event returns a bad value when submenus are involved.
This applies to 22.2 and the current CVS. As an example:
emacs -Q
;; Evaluate this code:
(defun bar ()
(interactive)
(message "%s :: %s" last-nonmenu-event
(posn-window (event-start last-nonmenu-event)))
(sit-for 5))
(global-set-key
[down-mouse-2]
'(menu-item "foo"
(keymap "foo"
(bar menu-item "bar" bar)
(submenu menu-item "submenu"
(keymap "submenu" (bar menu-item "bar" bar))))))
C-x 2
Put "scratch" in one window, "messages" in the other.
Select "messages" window.
Move mouse over "scratch", but do not select it.
Press mouse-2, and select the "bar" menu-item.
When called from the top-level menu, `bar' correctly returns:
(down-mouse-2 (#<window 3 on *scratch*> 534 (251 . 101) 2649593899 nil
534 (27 . 6) nil (8 . 11) (9 . 15))) :: #<window 3 on *scratch*>
When called from the submenu, `bar' returns a bad result:
bar :: #<window 7 on *Messages*>
The window is wrong, etc.
--- End Message ---
--- Begin Message ---
Subject: |
Re: last-nonmenu-event and sub-menus |
Date: |
Mon, 12 Jan 2009 10:58:44 +0100 |
User-agent: |
Thunderbird 2.0.0.16 (Windows/20080708) |
Fixed as
* keyboard.c (read_char): Fix case where last_nonmenu_event
returned a bad value with submenus. (Bug#447)
martin
--- End Message ---