summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-09-05 15:42:26 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-09-05 15:42:26 +0200
commitb9bdc48b4c79c88e36216b404997084fecf1bed2 (patch)
treea46f6d4a0c0fe342c84bd6a73d26149cc8aa7e74
parent81657507c296843971e4a921377451ecc3739e5e (diff)
downloademacs-b9bdc48b4c79c88e36216b404997084fecf1bed2.tar.gz
Fix <optgroup> in selects in eww
* lisp/net/eww.el (eww-tag-select): Use all the options. This fixes the problem with <optgroup> elements that wrap them (bug#43217).
-rw-r--r--lisp/net/eww.el19
1 files changed, 9 insertions, 10 deletions
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 04deb5bee05..dedf1c62717 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -1402,16 +1402,15 @@ See URL `https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input'.")
(options nil)
(start (point))
(max 0))
- (dolist (elem (dom-non-text-children dom))
- (when (eq (dom-tag elem) 'option)
- (when (dom-attr elem 'selected)
- (nconc menu (list :value (dom-attr elem 'value))))
- (let ((display (dom-text elem)))
- (setq max (max max (length display)))
- (push (list 'item
- :value (dom-attr elem 'value)
- :display display)
- options))))
+ (dolist (elem (dom-by-tag dom 'option))
+ (when (dom-attr elem 'selected)
+ (nconc menu (list :value (dom-attr elem 'value))))
+ (let ((display (dom-text elem)))
+ (setq max (max max (length display)))
+ (push (list 'item
+ :value (dom-attr elem 'value)
+ :display display)
+ options)))
(when options
(setq options (nreverse options))
;; If we have no selected values, default to the first value.