diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-08-11 09:19:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-11 07:19:50 +0000 |
commit | 59f5414ca86966738e3bafd6cc7f2dbaf38d1451 (patch) | |
tree | c3206e5199bca282a2f77ecdc3223850888f80c1 /components/layout_2020/fragment_tree/box_fragment.rs | |
parent | 450f8193a567ac6e5acd84e89fe73ed7ce137a78 (diff) | |
download | servo-59f5414ca86966738e3bafd6cc7f2dbaf38d1451.tar.gz servo-59f5414ca86966738e3bafd6cc7f2dbaf38d1451.zip |
Split line layout into two phases (#30089)
In the first phase, we gather LineItems and then when we have enough to
form a line we turn them into Fragments. This will make it possible to
more simply implement `vertical-align` and `text-align: justify` because
we need to measure the different aspects of the candidate line and then
produce a Fragments.
This is a general refactor of the way that inline layout works, so comes
with some progressions. In addition there are some new failures.
New failures:
Some tests are now failing because only the test or reference is getting
proper line height when it wasn't before. These should be fixed in a
followup change that properly calculate line-height in more cases:
- /_mozilla/css/list_style_position_a.html
- /css/CSS2/floats/float-no-content-beside-001.html
- /css/css-content/pseudo-element-inline-box.html
- /css/css-flexbox/flexbox_flex-none-wrappable-content.html
Some tests are now failing because floats are now placed properly, but
are no longer in their inline box stacking contexts. These will be fixed
by a followup change which properly parents them:
- /css/filter-effects/filtered-inline-applies-to-float.html.ini
- /css/css-color/inline-opacity-float-child.html.ini
One test is failing due to floating point precision errors:
- /css/CSS2/floats-clear/floats-141.xht.ini
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Diffstat (limited to 'components/layout_2020/fragment_tree/box_fragment.rs')
-rw-r--r-- | components/layout_2020/fragment_tree/box_fragment.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/components/layout_2020/fragment_tree/box_fragment.rs b/components/layout_2020/fragment_tree/box_fragment.rs index 9c06c212d33..0ff96c5deed 100644 --- a/components/layout_2020/fragment_tree/box_fragment.rs +++ b/components/layout_2020/fragment_tree/box_fragment.rs @@ -155,6 +155,7 @@ impl BoxFragment { \ncontent={:?}\ \npadding rect={:?}\ \nborder rect={:?}\ + \nmargin={:?}\ \nclearance={:?}\ \nscrollable_overflow={:?}\ \noverflow={:?} / {:?}", @@ -162,6 +163,7 @@ impl BoxFragment { self.content_rect, self.padding_rect(), self.border_rect(), + self.margin, self.clearance, self.scrollable_overflow(&PhysicalRect::zero()), self.style.get_box().overflow_x, |