]> git.eshelyaron.com Git - emacs.git/commitdiff
epa-key-list-mode-map: Use widget-keymap as parent keymap
authorJonas Bernoulli <jonas@bernoul.li>
Mon, 20 Apr 2020 21:33:44 +0000 (23:33 +0200)
committerJonas Bernoulli <jonas@bernoul.li>
Wed, 15 Jul 2020 16:06:04 +0000 (18:06 +0200)
Normally when one keymap is to be treated as the parent of another,
then that relationship is setup once at the time when the child is
being defined, i.e. at birth.  For some reason, this was not done
here; instead `widget-keymap' is set as `epa-key-list-mode-map'
parent every time the former is setup to be used as the local map.

This appears to be a mistake.  A few other keymaps use `widget-keymap'
as their parent and in those cases the relationship is established
just once. `epa-key-list-mode-map' is the only exception and because
there is absolutely no indication that that is justified, we remove
this inconsistency.

* lisp/epa.el (epa-key-list-mode-map): Set the parent of this keymap
while defining it.
* lisp/epa.el (epa--list-keys): Do not set the parent of the local
keymap here.

lisp/epa.el

index e4d1e5b4148d4a566423546b57f3d55e85acaea9..8f45c667b9ab3abf6f7b08a67acc67929b2917fb 100644 (file)
@@ -188,6 +188,7 @@ You should bind this variable with `let', but do not set it globally.")
 (defvar epa-key-list-mode-map
   (let ((keymap (make-sparse-keymap))
        (menu-map (make-sparse-keymap)))
+    (set-keymap-parent keymap widget-keymap)
     (define-key keymap "m" 'epa-mark-key)
     (define-key keymap "u" 'epa-unmark-key)
     (define-key keymap "d" 'epa-decrypt-file)
@@ -399,8 +400,7 @@ DOC is documentation text to insert at the start."
       (goto-char point))
 
     (epa--insert-keys (epg-list-keys context name secret))
-    (widget-setup)
-    (set-keymap-parent (current-local-map) widget-keymap))
+    (widget-setup))
   (make-local-variable 'epa-list-keys-arguments)
   (setq epa-list-keys-arguments (list name secret))
   (goto-char (point-min))