summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/wid-edit.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index afc0df372b3..bfed43794a6 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -331,7 +331,9 @@ new value.")
;; one character.
(let ((overlay (make-overlay (1- to) to nil t nil)))
(overlay-put overlay 'field 'boundary)
- (overlay-put overlay 'keymap keymap)
+ ;; Use `local-map' here, not `keymap', so that normal editing
+ ;; works in the field when, say, Custom uses `suppress-keymap'.
+ (overlay-put overlay 'local-map keymap)
(overlay-put overlay 'face face)
(overlay-put overlay 'help-echo help-echo))
(setq to (1- to))
@@ -340,7 +342,7 @@ new value.")
(widget-put widget :field-overlay overlay)
;;(overlay-put overlay 'detachable nil)
(overlay-put overlay 'field widget)
- (overlay-put overlay 'keymap keymap)
+ (overlay-put overlay 'local-map keymap)
(overlay-put overlay 'face face)
(overlay-put overlay 'help-echo help-echo)))
(widget-specify-secret widget))