mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
layout: Generalize ContainingBlock
's block size to a SizeConstraint
(#34946)
It used to be an `AuOrAuto`, turning it into a `SizeConstraint` allows passing the information about the min and max constraints when the containing block doesn't have a definite block size. This will be useful for table layout. Note that in most cases we were already constructing the containing block from a `SizeConstraint`, but we were calling `to_auto_or()` to turn it into an `AuOrAuto`. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
de780dcde4
commit
f66cd172d6
11 changed files with 71 additions and 69 deletions
|
@ -588,7 +588,7 @@ impl HoistedAbsolutelyPositionedBox {
|
|||
let containing_block_for_children = ContainingBlock {
|
||||
size: ContainingBlockSize {
|
||||
inline: inline_size,
|
||||
block: block_axis.size.to_auto_or(),
|
||||
block: block_axis.size,
|
||||
},
|
||||
style: &style,
|
||||
};
|
||||
|
@ -1008,9 +1008,9 @@ pub(crate) fn relative_adjustement(
|
|||
.box_offsets(containing_block.style.writing_mode)
|
||||
.map_inline_and_block_axes(
|
||||
|value| value.map(|value| value.to_used_value(cbis)),
|
||||
|value| match cbbs.non_auto() {
|
||||
Some(cbbs) => value.map(|value| value.to_used_value(cbbs)),
|
||||
None => match value.non_auto().and_then(|value| value.to_length()) {
|
||||
|value| match cbbs {
|
||||
SizeConstraint::Definite(cbbs) => value.map(|value| value.to_used_value(cbbs)),
|
||||
_ => match value.non_auto().and_then(|value| value.to_length()) {
|
||||
Some(value) => AuOrAuto::LengthPercentage(value.into()),
|
||||
None => AuOrAuto::Auto,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue