summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/emacs-lisp/vtable.el11
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)))