]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/menu-bar.el (menu-bar-keymap): Add optional arg KEYMAP (bug#50067).
authorJuri Linkov <juri@linkov.net>
Thu, 21 Oct 2021 16:55:24 +0000 (19:55 +0300)
committerJuri Linkov <juri@linkov.net>
Thu, 21 Oct 2021 16:55:24 +0000 (19:55 +0300)
* lisp/mouse.el (context-menu-global): Use 'menu-bar-keymap' with
its arg KEYMAP set to 'global-map'.

lisp/menu-bar.el
lisp/mouse.el

index 1cc126b5017de8e35d688323465d2125991d1eec..f19dc9e7c97ed82a899aa11f8825590d0c71c596 100644 (file)
@@ -2696,10 +2696,13 @@ This command is to be used when you click the mouse in the menubar."
                        (cdr menu-bar-item-cons)
                      0))))
 
-(defun menu-bar-keymap ()
+(defun menu-bar-keymap (&optional keymap)
   "Return the current menu-bar keymap.
+The ordering of the return value respects `menu-bar-final-items'.
 
-The ordering of the return value respects `menu-bar-final-items'."
+It's possible to use the KEYMAP argument to override the default keymap
+that is the currently active maps.  For example, the argument KEYMAP
+could provide `global-map' where items are limited to the global map only."
   (let ((menu-bar '())
         (menu-end '()))
     (map-keymap
@@ -2712,7 +2715,7 @@ The ordering of the return value respects `menu-bar-final-items'."
              ;; sorting.
              (push (cons pos menu-item) menu-end)
            (push menu-item menu-bar))))
-     (lookup-key (menu-bar-current-active-maps) [menu-bar]))
+     (lookup-key (or keymap (menu-bar-current-active-maps)) [menu-bar]))
     `(keymap ,@(nreverse menu-bar)
              ,@(mapcar #'cdr (sort menu-end
                                    (lambda (a b)
index bcb58d153a836c8aba5190369253e52ef48d88ba..7bac6dd07bf9bde715f8f26105ccd4adb6cff9b6 100644 (file)
@@ -364,7 +364,7 @@ Some context functions add menu items below the separator."
                 (when (consp binding)
                   (define-key-after menu (vector key)
                     (copy-sequence binding))))
-              (lookup-key global-map [menu-bar]))
+              (menu-bar-keymap global-map))
   menu)
 
 (defun context-menu-local (menu _click)