binding)
(while (and map (null binding))
(setq binding (lookup-key (car map) mouse-click))
+ (if (numberp binding) ; `too long'
+ (setq binding nil))
(setq map (cdr map)))
binding)
;; We were given a single keymap.
;; Keymap from which to inherit; may be null.
(ancestor (mouse-major-mode-menu-1
(and (current-local-map)
- (lookup-key (current-local-map) [menu-bar]))))
+ (local-key-binding [menu-bar]))))
;; Make a keymap in which our last command leads to a menu or
;; default to the edit menu.
(newmap (if ancestor
(lookup-key (current-local-map) [menu-bar])))
(global-menu (lookup-key global-map [menu-bar]))
(local-title-or-map (and local-menu (cadr local-menu)))
+ (minor-mode-menus (mapcar #'cdr (minor-mode-key-binding [menu-bar])))
(global-title-or-map (cadr global-menu)))
;; If the keymaps don't have prompt string (a lazy programmer
;; didn't bother to provide one), create it and insert it into the
(cons "Global Menu"
(cdr global-menu)))))
;; Supplying the list is faster than making a new map.
- (popup-menu (if local-menu
- (list global-menu local-menu)
- (list global-menu))
+ (popup-menu (append (list global-menu)
+ (if local-menu
+ (list local-menu))
+ minor-mode-menus)
event prefix)))
(defun mouse-popup-menubar-stuff (event prefix)