summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/wid-edit.el4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index f659518ee02..4888bf478df 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -339,6 +339,8 @@ new value.")
;; one character.
(let ((overlay (make-overlay (1- to) to nil t nil)))
(overlay-put overlay 'field 'boundary)
+ ;; We need the real field for tabbing.
+ (overlay-put overlay 'real-field widget)
;; 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)
@@ -1149,7 +1151,7 @@ When not inside a field, move to the previous button or field."
"Return the widget field at POS, or nil if none."
(let ((field (get-char-property (or pos (point)) 'field)))
(if (eq field 'boundary)
- nil
+ (get-char-property (or pos (point)) 'real-field)
field)))
(defun widget-field-buffer (widget)