layout: make padding and border use Au in pbm (#31289)

* use au for padding and border in pbm

* review fix
This commit is contained in:
atbrakhi 2024-02-12 23:49:50 +01:00 committed by GitHub
parent f25fe3539a
commit 8ba251c95f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 168 additions and 128 deletions

View file

@ -116,12 +116,12 @@ impl DisplayLayoutInternal {
/// Percentages resolved but not `auto` margins
#[derive(Clone)]
pub(crate) struct PaddingBorderMargin {
pub padding: LogicalSides<Length>,
pub border: LogicalSides<Length>,
pub padding: LogicalSides<Au>,
pub border: LogicalSides<Au>,
pub margin: LogicalSides<LengthOrAuto>,
/// Pre-computed sums in each axis
pub padding_border_sums: LogicalVec2<Length>,
pub padding_border_sums: LogicalVec2<Au>,
}
impl PaddingBorderMargin {
@ -288,8 +288,12 @@ impl ComputedValuesExt for ComputedValues {
BoxSizing::BorderBox => LogicalVec2 {
// These may be negative, but will later be clamped by `min-width`/`min-height`
// which is clamped to zero.
inline: box_size.inline.map(|i| i - pbm.padding_border_sums.inline),
block: box_size.block.map(|b| b - pbm.padding_border_sums.block),
inline: box_size
.inline
.map(|i| i - pbm.padding_border_sums.inline.into()),
block: box_size
.block
.map(|b| b - pbm.padding_border_sums.block.into()),
},
}
}
@ -308,10 +312,10 @@ impl ComputedValuesExt for ComputedValues {
// Clamp to zero to make sure the used size components are non-negative
inline: min_box_size
.inline
.map(|i| (i - pbm.padding_border_sums.inline).max(Length::zero())),
.map(|i| (i - pbm.padding_border_sums.inline.into()).max(Length::zero())),
block: min_box_size
.block
.map(|b| (b - pbm.padding_border_sums.block).max(Length::zero())),
.map(|b| (b - pbm.padding_border_sums.block.into()).max(Length::zero())),
},
}
}
@ -332,10 +336,10 @@ impl ComputedValuesExt for ComputedValues {
LogicalVec2 {
inline: max_box_size
.inline
.map(|i| i - pbm.padding_border_sums.inline),
.map(|i| i - pbm.padding_border_sums.inline.into()),
block: max_box_size
.block
.map(|b| b - pbm.padding_border_sums.block),
.map(|b| b - pbm.padding_border_sums.block.into()),
}
},
}
@ -349,11 +353,11 @@ impl ComputedValuesExt for ComputedValues {
let border = self.border_width(containing_block.style.writing_mode);
PaddingBorderMargin {
padding_border_sums: LogicalVec2 {
inline: padding.inline_sum() + border.inline_sum(),
block: padding.block_sum() + border.block_sum(),
inline: (padding.inline_sum() + border.inline_sum()).into(),
block: (padding.block_sum() + border.block_sum()).into(),
},
padding,
border,
padding: padding.into(),
border: border.into(),
margin: self
.margin(containing_block.style.writing_mode)
.percentages_relative_to(cbis),