summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/wid-edit.el13
1 files changed, 11 insertions, 2 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 05ef4b95658..f659518ee02 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1085,14 +1085,23 @@ the field."
:type 'function
:group 'widgets)
+(defun widget-narrow-to-field ()
+ "Narrow to field"
+ (interactive)
+ (let ((field (widget-field-find (point))))
+ (if field
+ (narrow-to-region (line-beginning-position) (line-end-position)))))
+
(defun widget-complete ()
"Complete content of editable field from point.
When not inside a field, move to the previous button or field."
(interactive)
(let ((field (widget-field-find (point))))
(if field
- (widget-apply field :complete)
- (error "Not in an editable field"))))
+ (save-restriction
+ (widget-narrow-to-field)
+ (widget-apply field :complete))
+ (error "Not in an editable field"))))
;;; Setting up the buffer.