# HG changeset patch # User Dave Love # Date 967547448 0 # Node ID 12f2e341ee9cd48eebe08677dda028f10b325e7e # Parent 790050caa0732e8e38e657cc6a2b5340f7330adc (mouse-major-mode-menu): Use local-key-binding. (mouse-popup-menubar): Add minor mode menus. (popup-menu): Check for lookup-key returning number. diff -r 790050caa073 -r 12f2e341ee9c lisp/mouse.el --- a/lisp/mouse.el Tue Aug 29 11:07:14 2000 +0000 +++ b/lisp/mouse.el Tue Aug 29 11:10:48 2000 +0000 @@ -76,6 +76,8 @@ 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. @@ -111,7 +113,7 @@ ;; 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 @@ -169,6 +171,7 @@ (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 @@ -184,9 +187,10 @@ (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)