;----------------------------------------------------------------------------------------------- ; widget-field-overlay-bug.el ;----------------------------------------------------------------------------------------------- (require 'wid-edit) (defvar w1 nil) (defvar w2 nil) (defvar w3 nil) (defun widget-field-overlay-bug () (interactive) (switch-to-buffer "*test*") (setq w1 (widget-create 'editable-field :format "%v" :size 3 :value "xxx")) (setq w2 (widget-create 'editable-field :format " %v " :size 3 :value "foo")) (setq w3 (widget-create 'editable-field :format "%v" :size 3 :value "yyy")) (widget-setup) (message "w1: %s\nw2: %s\nw3: %s" (widget-get w1 :field-overlay) (widget-get w2 :field-overlay) (widget-get w3 :field-overlay)) (when (y-or-n-p "Continue ") (widget-value-set w2 "bar") (widget-setup) ;; Markers are OK, but overlay of w1 and w3 are wrong! (message "w1: %s\nw2: %s\nw3: %s" (widget-get w1 :field-overlay) (widget-get w2 :field-overlay) (widget-get w3 :field-overlay)) (display-buffer "*Messages*") (goto-char (point-max))))