1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-23 18:47:57 +00:00

(widget-before-change): Obey `inhibit-read-only'.

This commit is contained in:
Richard M. Stallman 1997-08-15 19:26:07 +00:00
parent 63abf6122e
commit 540a8bd25e

View File

@ -1276,18 +1276,19 @@ Unlike (get-char-property POS 'field) this, works with empty fields too."
(defun widget-before-change (from to)
;; This is how, for example, a variable changes its state to `modified'.
;; when it is being edited.
(let ((from-field (widget-field-find from))
(to-field (widget-field-find to)))
(cond ((not (eq from-field to-field))
(add-hook 'post-command-hook 'widget-add-change nil t)
(error "Change should be restricted to a single field"))
((null from-field)
(add-hook 'post-command-hook 'widget-add-change nil t)
(error "Attempt to change text outside editable field"))
(widget-field-use-before-change
(condition-case nil
(widget-apply from-field :notify from-field)
(error (debug "Before Change")))))))
(unless inhibit-read-only
(let ((from-field (widget-field-find from))
(to-field (widget-field-find to)))
(cond ((not (eq from-field to-field))
(add-hook 'post-command-hook 'widget-add-change nil t)
(error "Change should be restricted to a single field"))
((null from-field)
(add-hook 'post-command-hook 'widget-add-change nil t)
(error "Attempt to change text outside editable field"))
(widget-field-use-before-change
(condition-case nil
(widget-apply from-field :notify from-field)
(error (debug "Before Change"))))))))
(defun widget-add-change ()
(make-local-hook 'post-command-hook)