From: Jonas Bernoulli Date: Mon, 20 Apr 2020 21:33:44 +0000 (+0200) Subject: epa-key-list-mode-map: Use widget-keymap as parent keymap X-Git-Tag: emacs-28.0.90~7001 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8c60347780937f87f8b5ff78e3e9372821cad89a;p=emacs.git epa-key-list-mode-map: Use widget-keymap as parent keymap 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. --- diff --git a/lisp/epa.el b/lisp/epa.el index e4d1e5b4148..8f45c667b9a 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -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))