Fix editing undo changes in eww fields
* eww.el (eww-tag-form): Don't overwrite initial form data in text fields. (eww-process-text-input): Make `M-t' at the end of text fields work better (bug#19085).
This commit is contained in:
parent
51362d68d1
commit
5713466646
1 changed files with 7 additions and 4 deletions
|
@ -921,6 +921,7 @@ network, but just re-display the HTML already fetched."
|
||||||
(let ((eww-form (list (cons :method (dom-attr dom 'method))
|
(let ((eww-form (list (cons :method (dom-attr dom 'method))
|
||||||
(cons :action (dom-attr dom 'action))))
|
(cons :action (dom-attr dom 'action))))
|
||||||
(start (point)))
|
(start (point)))
|
||||||
|
(insert "\n")
|
||||||
(shr-ensure-paragraph)
|
(shr-ensure-paragraph)
|
||||||
(shr-generic dom)
|
(shr-generic dom)
|
||||||
(unless (bolp)
|
(unless (bolp)
|
||||||
|
@ -1030,6 +1031,7 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
|
||||||
(1- end)))))
|
(1- end)))))
|
||||||
(let* ((form (get-text-property pos 'eww-form))
|
(let* ((form (get-text-property pos 'eww-form))
|
||||||
(properties (text-properties-at pos))
|
(properties (text-properties-at pos))
|
||||||
|
(buffer-undo-list t)
|
||||||
(inhibit-read-only t)
|
(inhibit-read-only t)
|
||||||
(length (- end beg replace-length))
|
(length (- end beg replace-length))
|
||||||
(type (plist-get form :type)))
|
(type (plist-get form :type)))
|
||||||
|
@ -1050,13 +1052,13 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
|
||||||
((< length 0)
|
((< length 0)
|
||||||
;; Add padding.
|
;; Add padding.
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (1- end))
|
(goto-char end)
|
||||||
(goto-char
|
(goto-char
|
||||||
(if (equal type "textarea")
|
(if (equal type "textarea")
|
||||||
(1- (line-end-position))
|
(1- (line-end-position))
|
||||||
(1+ (eww-end-of-field))))
|
(1+ (eww-end-of-field))))
|
||||||
(let ((start (point)))
|
(let ((start (point)))
|
||||||
(insert (make-string (abs length) ? ))
|
(insert (make-string (abs length) ? ))
|
||||||
(set-text-properties start (point) properties))
|
(set-text-properties start (point) properties))
|
||||||
(goto-char (1- end)))))
|
(goto-char (1- end)))))
|
||||||
(set-text-properties (plist-get form :start) (plist-get form :end)
|
(set-text-properties (plist-get form :start) (plist-get form :end)
|
||||||
|
@ -1070,8 +1072,9 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
|
||||||
(when (equal type "password")
|
(when (equal type "password")
|
||||||
;; Display passwords as asterisks.
|
;; Display passwords as asterisks.
|
||||||
(let ((start (eww-beginning-of-field)))
|
(let ((start (eww-beginning-of-field)))
|
||||||
(put-text-property start (+ start (length value))
|
(put-text-property
|
||||||
'display (make-string (length value) ?*)))))))))
|
start (+ start (length value))
|
||||||
|
'display (make-string (length value) ?*)))))))))
|
||||||
|
|
||||||
(defun eww-tag-textarea (dom)
|
(defun eww-tag-textarea (dom)
|
||||||
(let ((start (point))
|
(let ((start (point))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue