diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-10-17 09:53:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-17 07:53:57 +0000 |
commit | 2c341d9e69f75919d9ddb252ccffe9e6ca381e8a (patch) | |
tree | 816c46ab8c1f86add0e2ead9680e7222a8216a09 /components/layout_2020/tests | |
parent | 59ea908294eff1c7b9e1901df4d19cec2707eb8b (diff) | |
download | servo-2c341d9e69f75919d9ddb252ccffe9e6ca381e8a.tar.gz servo-2c341d9e69f75919d9ddb252ccffe9e6ca381e8a.zip |
Allow raising FloatContext ceiling after processing box with overflow (#30539)
When a box has overflow, any floats placed in that box will lower the
float ceiling into the overflow. If no float is placed in the box
though, the ceiling should be the block position where the overflow
starts. We already know where this is, because we might be passing a
negative value for the new block position after processing a box
(content_size - actual_size would be negative). This negative value
never raises the ceiling though since a maximum is used.
In the case that there is overflow, this change allows raising the
ceiling, but never passed the lowest float. This necessitates keeping
two values for the ceiling: one for floats and one for non-floats.
Fixes #30304.
Diffstat (limited to 'components/layout_2020/tests')
-rw-r--r-- | components/layout_2020/tests/floats.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/components/layout_2020/tests/floats.rs b/components/layout_2020/tests/floats.rs index 6226c774b44..b5187e7c4ef 100644 --- a/components/layout_2020/tests/floats.rs +++ b/components/layout_2020/tests/floats.rs @@ -467,7 +467,7 @@ impl FloatPlacement { let mut placed_floats = vec![]; for float in floats { let ceiling = Length::new(float.ceiling as f32); - float_context.lower_ceiling(ceiling); + float_context.set_ceiling_from_non_floats(ceiling); float_context.containing_block_info = float.containing_block_info; placed_floats.push(PlacedFloat { origin: float_context.add_float(&float.info), |