emacs-diffs
[Top][All Lists]
Advanced

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

master de003cb2b5: Improve vtable :keymap handling


From: Lars Ingebrigtsen
Subject: master de003cb2b5: Improve vtable :keymap handling
Date: Mon, 21 Feb 2022 13:20:09 -0500 (EST)

branch: master
commit de003cb2b555719a005516b7791a6f6c3c11f9a3
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Improve vtable :keymap handling
    
    * lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
    Don't alter keymaps passed in, and respect parent keymaps.
---
 lisp/emacs-lisp/vtable.el | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/vtable.el b/lisp/emacs-lisp/vtable.el
index 0884986030..2c61996637 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)))
 



reply via email to

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