servo/components/layout_2020
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
..
display_list Properly handle degenerate aspect ratios (#30245) 2023-08-30 09:00:18 +00:00
flexbox Make fewer PositioningContexts when descending (#30061) 2023-08-03 08:51:27 +00:00
flow Refactor inline layout nesting (#30289) 2023-09-05 17:12:15 +00:00
fragment_tree build(deps): bump bitflags from 1.3.2 to 2.3.1 (#30273) 2023-09-01 09:58:48 +00:00
tests Fix failing unit test due to overflow (#30074) 2023-08-08 11:29:14 +00:00
Cargo.toml Use std::cell::OnceCell and remove mitochondria dependency (#30207) 2023-08-25 14:09:55 +00:00
cell.rs Implement Default for ArcRefCell 2020-03-17 11:15:17 -07:00
context.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00
dom.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00
dom_traversal.rs Make the choice of layout runtime setting 2023-07-06 14:49:24 +02:00
formatting_contexts.rs Resolve cyclic margin and padding percentages against zero (#30085) 2023-08-10 11:38:44 +00:00
geom.rs Flow inlines around floats (#30243) 2023-08-31 10:54:54 +00:00
layout_debug.rs Layout 2020: Move all Fragment code to the fragment_tree directory 2023-06-04 18:12:11 +02:00
lib.rs Use std::cell::OnceCell and remove mitochondria dependency (#30207) 2023-08-25 14:09:55 +00:00
lists.rs Make the choice of layout runtime setting 2023-07-06 14:49:24 +02:00
positioned.rs Split line layout into two phases (#30089) 2023-08-11 07:19:50 +00:00
query.rs Further changes required by Servo 2023-08-16 17:46:41 +02:00
replaced.rs Properly handle degenerate aspect ratios (#30245) 2023-08-30 09:00:18 +00:00
sizing.rs Resolve cyclic margin and padding percentages against zero (#30085) 2023-08-10 11:38:44 +00:00
style_ext.rs Flow inlines around floats (#30243) 2023-08-31 10:54:54 +00:00
traversal.rs Combine DOM-related concepts in Layout 2020 into dom.rs 2023-05-13 11:52:59 +02:00