(widget-before-change): Obey `inhibit-read-only'.
This commit is contained in:
parent
63abf6122e
commit
540a8bd25e
1 changed files with 13 additions and 12 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue