servo/components/layout_2020/flow
Martin Robinson 577baea223
Refactor inline layout nesting (#30289)
This makes the nesting architecture of inline layout a lot simpler. Now
PartialInlineBoxFragment and InlineNestingLevelState are replaced by
two structs:

 - InlineContainerState
 - InlineBoxContainerState

InlineContainerState holds state for the root of the inline formatting
context, while InlineBoxContainerState holds state for inline boxes.
InlineBoxContainerState has an InlineContainerState as the first
element, thus "extends" it.

Now the inline iterators are stack variables directly in the `layout()`
method. They are no longer stored in the state. This avoids the weird
nesting of state and instead relies on a normal vector to hold the
stack of state.

Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-09-05 17:12:15 +00:00
..
construct.rs Add initial support for css-text-3 whitespace handling (#29828) 2023-07-20 18:34:31 +00:00
float.rs Fix PlacementAmongFloats to avoid missing some bands (#30280) 2023-09-01 20:18:19 +00:00
inline.rs Refactor inline layout nesting (#30289) 2023-09-05 17:12:15 +00:00
mod.rs Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
root.rs Remove rayon_croissant and clean up contains_floats (#29960) 2023-07-19 07:01:55 +00:00