aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen2016-02-02 18:00:02 +1100
committerLars Ingebrigtsen2016-02-02 18:00:02 +1100
commit57134666465488819ac1fe0678484eefb9bd7853 (patch)
tree27ca2ff25df6aeefccecc4bfa17073d997e55ee7 /lisp
parent51362d68d14af92799c65198a690f769b04d456d (diff)
downloademacs-57134666465488819ac1fe0678484eefb9bd7853.tar.gz
emacs-57134666465488819ac1fe0678484eefb9bd7853.zip
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).
Diffstat (limited to 'lisp')
-rw-r--r--lisp/net/eww.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 147ba5fcda7..7f98b5b8c7b 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -921,6 +921,7 @@ network, but just re-display the HTML already fetched."
921 (let ((eww-form (list (cons :method (dom-attr dom 'method)) 921 (let ((eww-form (list (cons :method (dom-attr dom 'method))
922 (cons :action (dom-attr dom 'action)))) 922 (cons :action (dom-attr dom 'action))))
923 (start (point))) 923 (start (point)))
924 (insert "\n")
924 (shr-ensure-paragraph) 925 (shr-ensure-paragraph)
925 (shr-generic dom) 926 (shr-generic dom)
926 (unless (bolp) 927 (unless (bolp)
@@ -1030,6 +1031,7 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
1030 (1- end))))) 1031 (1- end)))))
1031 (let* ((form (get-text-property pos 'eww-form)) 1032 (let* ((form (get-text-property pos 'eww-form))
1032 (properties (text-properties-at pos)) 1033 (properties (text-properties-at pos))
1034 (buffer-undo-list t)
1033 (inhibit-read-only t) 1035 (inhibit-read-only t)
1034 (length (- end beg replace-length)) 1036 (length (- end beg replace-length))
1035 (type (plist-get form :type))) 1037 (type (plist-get form :type)))
@@ -1050,13 +1052,13 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
1050 ((< length 0) 1052 ((< length 0)
1051 ;; Add padding. 1053 ;; Add padding.
1052 (save-excursion 1054 (save-excursion
1053 (goto-char (1- end)) 1055 (goto-char end)
1054 (goto-char 1056 (goto-char
1055 (if (equal type "textarea") 1057 (if (equal type "textarea")
1056 (1- (line-end-position)) 1058 (1- (line-end-position))
1057 (1+ (eww-end-of-field)))) 1059 (1+ (eww-end-of-field))))
1058 (let ((start (point))) 1060 (let ((start (point)))
1059 (insert (make-string (abs length) ? )) 1061 (insert (make-string (abs length) ? ))
1060 (set-text-properties start (point) properties)) 1062 (set-text-properties start (point) properties))
1061 (goto-char (1- end))))) 1063 (goto-char (1- end)))))
1062 (set-text-properties (plist-get form :start) (plist-get form :end) 1064 (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'.")
1070 (when (equal type "password") 1072 (when (equal type "password")
1071 ;; Display passwords as asterisks. 1073 ;; Display passwords as asterisks.
1072 (let ((start (eww-beginning-of-field))) 1074 (let ((start (eww-beginning-of-field)))
1073 (put-text-property start (+ start (length value)) 1075 (put-text-property
1074 'display (make-string (length value) ?*))))))))) 1076 start (+ start (length value))
1077 'display (make-string (length value) ?*)))))))))
1075 1078
1076(defun eww-tag-textarea (dom) 1079(defun eww-tag-textarea (dom)
1077 (let ((start (point)) 1080 (let ((start (point))