mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Fully support <input type=color>
(#36992)
This change adds a shadow-tree widget for `<input type=color>` elements. It also involves some changes to the way layout interacts with the DOM, because currently all `input` and `textarea` elements are rendered as plain text and their descendants are ignored. This obviously doesn't work for `<input type={color, date, range, etc}>`.  <details><summary>HTML used for the screenshot above</summary> ```html <input type=color> ``` </details> Testing: I doubt that this affects WPT tests, because the appearance and behaviour of the widget is almost entirely unspecified. --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
f9382fcaa0
commit
b100a98e1d
14 changed files with 469 additions and 100 deletions
|
@ -201,17 +201,7 @@ fn traverse_children_of<'dom>(
|
|||
) {
|
||||
traverse_eager_pseudo_element(PseudoElement::Before, parent_element, context, handler);
|
||||
|
||||
let is_text_input_element = matches!(
|
||||
parent_element.type_id(),
|
||||
LayoutNodeType::Element(LayoutElementType::HTMLInputElement)
|
||||
);
|
||||
|
||||
let is_textarea_element = matches!(
|
||||
parent_element.type_id(),
|
||||
LayoutNodeType::Element(LayoutElementType::HTMLTextAreaElement)
|
||||
);
|
||||
|
||||
if is_text_input_element || is_textarea_element {
|
||||
if parent_element.is_text_input() {
|
||||
let info = NodeAndStyleInfo::new(
|
||||
parent_element,
|
||||
parent_element.style(context.shared_context()),
|
||||
|
@ -229,9 +219,7 @@ fn traverse_children_of<'dom>(
|
|||
} else {
|
||||
handler.handle_text(&info, node_text_content);
|
||||
}
|
||||
}
|
||||
|
||||
if !is_text_input_element && !is_textarea_element {
|
||||
} else {
|
||||
for child in iter_child_nodes(parent_element) {
|
||||
if child.is_text_node() {
|
||||
let info = NodeAndStyleInfo::new(child, child.style(context.shared_context()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue