From: Lars Ingebrigtsen Date: Mon, 21 Feb 2022 18:19:55 +0000 (+0100) Subject: Improve vtable :keymap handling X-Git-Tag: emacs-29.0.90~2173 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=de003cb2b555719a005516b7791a6f6c3c11f9a3;p=emacs.git Improve vtable :keymap handling * lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap): Don't alter keymaps passed in, and respect parent keymaps. --- 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)))