mirror of
https://github.com/servo/servo.git
synced 2025-07-22 14:53:49 +01:00
Lay out the contents of slot elements (#35220)
* Make Slottable match layout/alignment of NonNull<Node> Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement ServoLayoutElement::slotted_nodes Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Bump mozjs Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Layout the contents of slot elements Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Implement ServoLayoutElement::assigned_slot Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * implement ServoLayoutElement::traversal_parent Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Simplify slottable name update Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Don't iterate over children of shadow hosts Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Recompute slot style when contents change Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Change match_slottable to a function instead of a macro Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Fix crown errors Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Reset a slottable's assigned slot when it's removed from the slot Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
938baf6bf3
commit
6a2e37183c
26 changed files with 263 additions and 143 deletions
|
@ -2155,12 +2155,8 @@ impl Node {
|
|||
if let Some(shadow_root) = parent.downcast::<Element>().and_then(Element::shadow_root) {
|
||||
if shadow_root.SlotAssignment() == SlotAssignmentMode::Named {
|
||||
let cx = GlobalScope::get_cx();
|
||||
if let Some(element) = node.downcast::<Element>() {
|
||||
rooted!(in(*cx) let slottable = Slottable::Element(Dom::from_ref(element)));
|
||||
slottable.assign_a_slot();
|
||||
}
|
||||
if let Some(text) = node.downcast::<Text>() {
|
||||
rooted!(in(*cx) let slottable = Slottable::Text(Dom::from_ref(text)));
|
||||
if node.is::<Element>() || node.is::<Text>() {
|
||||
rooted!(in(*cx) let slottable = Slottable(Dom::from_ref(node)));
|
||||
slottable.assign_a_slot();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue