summaryrefslogtreecommitdiff
path: root/lisp/wid-edit.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-01-13 19:56:54 +0000
committerEli Zaretskii <eliz@gnu.org>2006-01-13 19:56:54 +0000
commite47f89f079c09db05b5eff303f047b419fa972a7 (patch)
tree32b5b92a1906ce326ab1babbf0ff3fb18e591934 /lisp/wid-edit.el
parent83dc149dec82db59100204c37138dc2fab916327 (diff)
downloademacs-e47f89f079c09db05b5eff303f047b419fa972a7.tar.gz
(widget-field-end): If the overlay is no longer associated with a buffer,
behave as if the overlay didn't exist.
Diffstat (limited to 'lisp/wid-edit.el')
-rw-r--r--lisp/wid-edit.el34
1 files changed, 18 insertions, 16 deletions
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 0735c467439..01b82b685c1 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1203,22 +1203,24 @@ When not inside a field, move to the previous button or field."
;; or if a special `boundary' field has been added after the widget
;; field.
(if (overlayp overlay)
- (if (and (not (eq (with-current-buffer
- (widget-field-buffer widget)
- (save-restriction
- ;; `widget-narrow-to-field' can be
- ;; active when this function is called
- ;; from an change-functions hook. So
- ;; temporarily remove field narrowing
- ;; before to call `get-char-property'.
- (widen)
- (get-char-property (overlay-end overlay)
- 'field)))
- 'boundary))
- (or widget-field-add-space
- (null (widget-get widget :size))))
- (1- (overlay-end overlay))
- (overlay-end overlay))
+ ;; Don't proceed if overlay has been removed from buffer.
+ (when (overlay-buffer overlay)
+ (if (and (not (eq (with-current-buffer
+ (widget-field-buffer widget)
+ (save-restriction
+ ;; `widget-narrow-to-field' can be
+ ;; active when this function is called
+ ;; from an change-functions hook. So
+ ;; temporarily remove field narrowing
+ ;; before to call `get-char-property'.
+ (widen)
+ (get-char-property (overlay-end overlay)
+ 'field)))
+ 'boundary))
+ (or widget-field-add-space
+ (null (widget-get widget :size))))
+ (1- (overlay-end overlay))
+ (overlay-end overlay)))
(cdr overlay))))
(defun widget-field-find (pos)