summaryrefslogtreecommitdiff
path: root/lisp/tmm.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1998-06-14 18:46:20 +0000
committerRichard M. Stallman <rms@gnu.org>1998-06-14 18:46:20 +0000
commitdd81ca0dd846b284e7fea5351089d896e0c8d57c (patch)
tree5a6b97e619073ca1bbe380f14f10b133f8db2835 /lisp/tmm.el
parent9a69bda1ebc8bfed11e047e7bb67ebec58d2486d (diff)
downloademacs-dd81ca0dd846b284e7fea5351089d896e0c8d57c.tar.gz
(tmm-get-keymap): Handle :filter.
Diffstat (limited to 'lisp/tmm.el')
-rw-r--r--lisp/tmm.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/tmm.el b/lisp/tmm.el
index e7ffce153f3..72438186391 100644
--- a/lisp/tmm.el
+++ b/lisp/tmm.el
@@ -399,7 +399,7 @@ element of keymap, an `x-popup-menu' argument, or an element of
`x-popup-menu' argument (when IN-X-MENU is not-nil).
This function adds the element only if it is not already present.
It uses the free variable `tmm-table-undef' to keep undefined keys."
- (let (km str cache (event (car elt)))
+ (let (km str cache plist filter (event (car elt)))
(setq elt (cdr elt))
(if (eq elt 'undefined)
(setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
@@ -425,8 +425,12 @@ It uses the free variable `tmm-table-undef' to keep undefined keys."
(setq cache (cdr (car (cdr elt))))
cache (setq str (concat str cache))))
((eq (car-safe elt) 'menu-item)
+ (setq plist (cdr-safe (cdr-safe (cdr-safe elt))))
(setq km (nth 2 elt))
(setq str (nth 1 elt))
+ (setq filter (plist-get plist :filter))
+ (if filter
+ (setq km (funcall filter km)))
(and str
(consp (nth 3 elt))
(stringp (cdr (nth 3 elt))) ; keyseq cache