servo/components/layout/fragment_tree
Martin Robinson 9781f1241a
layout: Move text decoration propagation to stacking context tree construction (#37069)
Text decorations have a special kind of propagation. Instead of
propating these during box tree construction, move propagation to
stacking context tree construction. This will allow for using a very
easy type of incremental layout when text decorations change. For
instance, when a link changes color during hovering over it, we can skip
all of box and fragment tree construction.

In addition, propagation works a bit better now and color and style
properly move down from their originating `Fragment`s.

This introduces three new failures, because now we are drawing the
text-decoration with the correct color in more places, which exposes an
issue we have with text-decorations not being drawn in relation to the
baseline (taking into account `vertical-align`).

Testing: There are tests for these changes.
Fixes #31736.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-21 16:38:29 +00:00
..
base_fragment.rs layout: Resolve canvas background properties during painting (#36917) 2025-05-09 10:36:53 +00:00
box_fragment.rs layout: Split stacking context and display list construction (#37047) 2025-05-20 13:42:39 +00:00
containing_block.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
fragment.rs layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
fragment_tree.rs layout: Split stacking context and display list construction (#37047) 2025-05-20 13:42:39 +00:00
hoisted_shared_fragment.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
mod.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
positioning_fragment.rs layout: Add a repaint-only incremental layout mode (#36978) 2025-05-12 17:03:50 +00:00