aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mouse.el31
1 files changed, 17 insertions, 14 deletions
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."
317 "Global submenus." 317 "Global submenus."
318 (run-hooks 'activate-menubar-hook 'menu-bar-update-hook) 318 (run-hooks 'activate-menubar-hook 'menu-bar-update-hook)
319 (define-key-after menu [separator-global] menu-bar-separator) 319 (define-key-after menu [separator-global] menu-bar-separator)
320 (dolist (item (lookup-key global-map [menu-bar])) 320 (map-keymap (lambda (key binding)
321 (when (and (consp item) (consp (cdr item))) 321 (when (consp binding)
322 (define-key-after menu (vector (car item)) 322 (define-key-after menu (vector key)
323 (copy-sequence (cdr item))))) 323 (copy-sequence binding))))
324 (lookup-key global-map [menu-bar]))
324 menu) 325 menu)
325 326
326(defun context-menu-local (menu) 327(defun context-menu-local (menu)
327 "Major mode submenus." 328 "Major mode submenus."
328 (run-hooks 'activate-menubar-hook 'menu-bar-update-hook) 329 (run-hooks 'activate-menubar-hook 'menu-bar-update-hook)
329 (define-key-after menu [separator-local] menu-bar-separator) 330 (define-key-after menu [separator-local] menu-bar-separator)
330 (dolist (item (local-key-binding [menu-bar])) 331 (let ((keymap (local-key-binding [menu-bar])))
331 (when (and (consp item) (consp (cdr item))) 332 (when keymap
332 ;; Fix deep menu created by `imenu-add-to-menubar'. 333 (map-keymap (lambda (key binding)
333 (when (eq (car item) 'keymap) (setq item (cadr item))) 334 (when (consp binding)
334 (define-key-after menu (vector (car item)) 335 (define-key-after menu (vector key)
335 (copy-sequence (cdr item))))) 336 (copy-sequence binding))))
337 keymap)))
336 menu) 338 menu)
337 339
338(defun context-menu-minor (menu) 340(defun context-menu-minor (menu)
@@ -341,10 +343,11 @@ the same menu with changes such as added new menu items."
341 (define-key-after menu [separator-minor] menu-bar-separator) 343 (define-key-after menu [separator-minor] menu-bar-separator)
342 (dolist (mode (minor-mode-key-binding [menu-bar])) 344 (dolist (mode (minor-mode-key-binding [menu-bar]))
343 (when (and (consp mode) (symbol-value (car mode))) 345 (when (and (consp mode) (symbol-value (car mode)))
344 (dolist (item (cdr mode)) 346 (map-keymap (lambda (key binding)
345 (when (and (consp item) (consp (cdr item))) 347 (when (consp binding)
346 (define-key-after menu (vector (car item)) 348 (define-key-after menu (vector key)
347 (copy-sequence (cdr item))))))) 349 (copy-sequence binding))))
350 (cdr mode))))
348 menu) 351 menu)
349 352
350(defun context-menu-vc (menu) 353(defun context-menu-vc (menu)