From: Juri Linkov Date: Sun, 15 Aug 2021 16:27:06 +0000 (+0300) Subject: Use map-keymap in context-menu-global, context-menu-local, context-menu-minor X-Git-Tag: emacs-28.0.90~1470^2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d9eac0b4263c10b2ab3a428cf8faa4b5e1d99a83;p=emacs.git Use map-keymap in context-menu-global, context-menu-local, context-menu-minor --- diff --git a/lisp/mouse.el b/lisp/mouse.el index 1f5bd8e4a6b..42154255475 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -317,22 +317,24 @@ the same menu with changes such as added new menu items." "Global submenus." (run-hooks 'activate-menubar-hook 'menu-bar-update-hook) (define-key-after menu [separator-global] menu-bar-separator) - (dolist (item (lookup-key global-map [menu-bar])) - (when (and (consp item) (consp (cdr item))) - (define-key-after menu (vector (car item)) - (copy-sequence (cdr item))))) + (map-keymap (lambda (key binding) + (when (consp binding) + (define-key-after menu (vector key) + (copy-sequence binding)))) + (lookup-key global-map [menu-bar])) menu) (defun context-menu-local (menu) "Major mode submenus." (run-hooks 'activate-menubar-hook 'menu-bar-update-hook) (define-key-after menu [separator-local] menu-bar-separator) - (dolist (item (local-key-binding [menu-bar])) - (when (and (consp item) (consp (cdr item))) - ;; Fix deep menu created by `imenu-add-to-menubar'. - (when (eq (car item) 'keymap) (setq item (cadr item))) - (define-key-after menu (vector (car item)) - (copy-sequence (cdr item))))) + (let ((keymap (local-key-binding [menu-bar]))) + (when keymap + (map-keymap (lambda (key binding) + (when (consp binding) + (define-key-after menu (vector key) + (copy-sequence binding)))) + keymap))) menu) (defun context-menu-minor (menu) @@ -341,10 +343,11 @@ the same menu with changes such as added new menu items." (define-key-after menu [separator-minor] menu-bar-separator) (dolist (mode (minor-mode-key-binding [menu-bar])) (when (and (consp mode) (symbol-value (car mode))) - (dolist (item (cdr mode)) - (when (and (consp item) (consp (cdr item))) - (define-key-after menu (vector (car item)) - (copy-sequence (cdr item))))))) + (map-keymap (lambda (key binding) + (when (consp binding) + (define-key-after menu (vector key) + (copy-sequence binding)))) + (cdr mode)))) menu) (defun context-menu-vc (menu)