diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-02-21 19:19:55 +0100 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-02-21 19:19:55 +0100 |
commit | de003cb2b555719a005516b7791a6f6c3c11f9a3 (patch) | |
tree | 1105f0f8c3a1b271ac0ef7a1153ae787a510fe73 /lisp/emacs-lisp | |
parent | 9df5e3080066341d78489f0b18eabeeccac76b0c (diff) | |
download | emacs-de003cb2b555719a005516b7791a6f6c3c11f9a3.tar.gz emacs-de003cb2b555719a005516b7791a6f6c3c11f9a3.tar.bz2 emacs-de003cb2b555719a005516b7791a6f6c3c11f9a3.zip |
Improve vtable :keymap handling
* lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
Don't alter keymaps passed in, and respect parent keymaps.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/vtable.el | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/vtable.el b/lisp/emacs-lisp/vtable.el index 08849860307..2c61996637f 100644 --- a/lisp/emacs-lisp/vtable.el +++ b/lisp/emacs-lisp/vtable.el @@ -61,7 +61,6 @@ "A object to hold the data for a table.") (defvar-keymap vtable-map - :suppress t "S" #'vtable-sort-by-current-column "{" #'vtable-narrow-current-column "}" #'vtable-widen-current-column @@ -634,7 +633,15 @@ This also updates the displayed table." (setq actions (cddr actions)))) (if (vtable-keymap table) (progn - (set-keymap-parent (vtable-keymap table) map) + (setf (vtable-keymap table) + (copy-keymap (vtable-keymap table))) + ;; Respect any previously set parent keymaps. + (set-keymap-parent (vtable-keymap table) + (if (keymap-parent (vtable-keymap table)) + (append (ensure-list + (vtable-keymap table)) + (list map)) + map)) (vtable-keymap table)) map))) |