emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/which-key 2444833 12/32: Fix menu-item bidning retrieva


From: ELPA Syncer
Subject: [elpa] externals/which-key 2444833 12/32: Fix menu-item bidning retrieval
Date: Wed, 30 Jun 2021 18:57:28 -0400 (EDT)

branch: externals/which-key
commit 244483334044ebd87a10608eae124111c8837823
Author: Justin Burkett <justin@burkett.cc>
Commit: Justin Burkett <justin@burkett.cc>

    Fix menu-item bidning retrieval
---
 which-key.el | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/which-key.el b/which-key.el
index 55e65b8..ebed572 100644
--- a/which-key.el
+++ b/which-key.el
@@ -1745,6 +1745,14 @@ Requires `which-key-compute-remaps' to be non-nil"
         (copy-sequence (symbol-name remap))
       (copy-sequence (symbol-name binding)))))
 
+(defun which-key--get-menu-item-binding (def)
+  "Retrieve binding for menu-item"
+  ;; see `keymap--menu-item-binding'
+  (let* ((binding (nth 2 def))
+         (plist (nthcdr 3 def))
+         (filter (plist-get plist :filter)))
+    (if filter (funcall filter binding) binding)))
+
 (defun which-key--get-keymap-bindings-1
     (keymap start &optional prefix filter all ignore-commands)
   "See `which-key--get-keymap-bindings'."
@@ -1772,14 +1780,17 @@ Requires `which-key-compute-remaps' to be non-nil"
                    (which-key--get-keymap-bindings-1
                     keymap bindings key nil all ignore-commands)))
             (def
-             (let ((binding
+             (let* ((def (if (eq 'menu-item (car-safe def))
+                             (which-key--get-menu-item-binding def)
+                           def))
+                    (binding
                      (cons key-desc
                            (cond
                             ((keymapp def) "prefix")
                             ((symbolp def) (which-key--compute-binding def))
                             ((eq 'lambda (car-safe def)) "lambda")
                             ((eq 'menu-item (car-safe def))
-                             (keymap--menu-item-binding def))
+                             (which-key--get-menu-item-binding def))
                             ((stringp def) def)
                             ((vectorp def) (key-description def))
                             ((consp def) (car def))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]