servo/components/layout
Simon Wülker f29eee5356
Make layout build a display list when the highlighted DOM node changed (#37501)
Highlights from the devtools trigger reflows. Previously, incremental
layout would notice that nothing about the box tree changed and skip
generating a new display list. This caused the highlights to never be
painted.

Forcing a new DL in this case makes reflows that happen *while* there is
a highlighted DOM node (which did not change since the last reflow)
slightly less efficient. We could check if the highlighted node changed
and only force a new display list if it did, but I'm not sure if
`OpaqueNode`s can be compared like that. It also seems like a very niche
issue.

Testing: This is hard to test for, so there are no tests.
Fixes https://github.com/servo/servo/issues/37500.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-17 11:14:41 +00:00
..
display_list layout: Unify scrollable overflow calculation and include position: absolute (#37475) 2025-06-16 11:30:31 +00:00
flexbox layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
flow layout: capitalize string for TextTransformCase::Capitalize in fn rendered_text_collection_steps (#37486) 2025-06-16 14:12:07 +00:00
fragment_tree layout: Unify scrollable overflow calculation and include position: absolute (#37475) 2025-06-16 11:30:31 +00:00
stylesheets Add a user agent style for the <slot> element (#37174) 2025-05-29 08:20:01 +00:00
table layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
taffy CSS Grid: percentage sizing fixes (#34948) 2025-06-08 15:17:10 +00:00
tests layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
Cargo.toml Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
cell.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
construct_modern.rs Move to_bidi_level method from Stylo to Servo (#37343) 2025-06-11 14:44:13 +00:00
context.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
dom.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
dom_traversal.rs Revert "Implement Input UA Shadow DOM (#37065)" (#37296) 2025-06-06 15:23:08 +00:00
formatting_contexts.rs layout: Correct damage propagation and style repair for repaint-only layout (#37004) 2025-05-19 10:17:49 +00:00
geom.rs layout: Inform child layout about final block size (#36980) 2025-05-14 20:35:49 +00:00
layout_box_base.rs layout: Add a repaint-only incremental layout mode (#36978) 2025-05-12 17:03:50 +00:00
layout_impl.rs Make layout build a display list when the highlighted DOM node changed (#37501) 2025-06-17 11:14:41 +00:00
lib.rs layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
lists.rs layout: Use ServoLayoutNode directly instead of a generic impl (#36876) 2025-05-06 14:27:51 +00:00
positioned.rs layout: Split overflow calculation after fragment tree construction (#37203) 2025-05-30 19:41:05 +00:00
query.rs layout: capitalize string for TextTransformCase::Capitalize in fn rendered_text_collection_steps (#37486) 2025-06-16 14:12:07 +00:00
quotes.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
replaced.rs layout: Ensure that min/max-content sizes ignore sizing properties (#37464) 2025-06-15 16:11:18 +00:00
sizing.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
style_ext.rs Move to_bidi_level method from Stylo to Servo (#37343) 2025-06-11 14:44:13 +00:00
traversal.rs Add another incremental layout that starts at stacking tree construction (#37088) 2025-05-23 23:40:02 +00:00