layout: Use Au in ComputedValuesExt (#33396)

* Use app unit in `ComputedValuesExt`

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: atbrakhi <atbrakhi@igalia.com>

* Some miscellaneous fixes

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

* remove redundant defination of `containing_block_inline_size`

Signed-off-by: atbrakhi <atbrakhi@igalia.com>

---------

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
atbrakhi 2024-09-10 23:35:17 +02:00 committed by GitHub
parent 9346d9cc8d
commit 095590e224
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 240 additions and 272 deletions

View file

@ -154,14 +154,20 @@ impl LogicalVec2<LengthPercentageOrAuto<'_>> {
pub(crate) fn percentages_relative_to(
&self,
containing_block: &ContainingBlock,
) -> LogicalVec2<LengthOrAuto> {
) -> LogicalVec2<AuOrAuto> {
LogicalVec2 {
inline: self
.inline
.percentage_relative_to(containing_block.inline_size.into()),
block: self.block.maybe_percentage_relative_to(
containing_block.block_size.map(|t| t.into()).non_auto(),
),
.map(|value| value.to_used_value(containing_block.inline_size)),
block: {
let containing_block_block_size =
containing_block.block_size.non_auto().map(Into::into);
self.block
.non_auto()
.and_then(|value| value.maybe_to_used_value(containing_block_block_size))
.map(|value| AuOrAuto::LengthPercentage(value))
.unwrap_or(AuOrAuto::Auto)
},
}
}
}
@ -169,11 +175,11 @@ impl LogicalVec2<LengthPercentageOrAuto<'_>> {
impl LogicalVec2<LengthPercentageOrAuto<'_>> {
pub(crate) fn percentages_relative_to_basis(
&self,
basis: &LogicalVec2<Length>,
) -> LogicalVec2<LengthOrAuto> {
basis: &LogicalVec2<Au>,
) -> LogicalVec2<AuOrAuto> {
LogicalVec2 {
inline: self.inline.percentage_relative_to(basis.inline),
block: self.block.percentage_relative_to(basis.block),
inline: self.inline.map(|value| value.to_used_value(basis.inline)),
block: self.block.map(|value| value.to_used_value(basis.block)),
}
}
}
@ -181,11 +187,22 @@ impl LogicalVec2<LengthPercentageOrAuto<'_>> {
impl LogicalVec2<LengthPercentageOrAuto<'_>> {
pub(crate) fn maybe_percentages_relative_to_basis(
&self,
basis: &LogicalVec2<Option<Length>>,
) -> LogicalVec2<LengthOrAuto> {
basis: &LogicalVec2<Option<Au>>,
) -> LogicalVec2<AuOrAuto> {
let basis = basis.map(|value| value.map(Into::into));
LogicalVec2 {
inline: self.inline.maybe_percentage_relative_to(basis.inline),
block: self.block.maybe_percentage_relative_to(basis.block),
inline: self
.inline
.non_auto()
.and_then(|value| value.maybe_to_used_value(basis.inline))
.map(|value| AuOrAuto::LengthPercentage(value))
.unwrap_or(AuOrAuto::Auto),
block: self
.block
.non_auto()
.and_then(|value| value.maybe_to_used_value(basis.block))
.map(|value| AuOrAuto::LengthPercentage(value))
.unwrap_or(AuOrAuto::Auto),
}
}
}
@ -194,15 +211,13 @@ impl LogicalVec2<Option<&'_ LengthPercentage>> {
pub(crate) fn percentages_relative_to(
&self,
containing_block: &ContainingBlock,
) -> LogicalVec2<Option<Length>> {
) -> LogicalVec2<Option<Au>> {
LogicalVec2 {
inline: self
.inline
.map(|lp| lp.percentage_relative_to(containing_block.inline_size.into())),
.map(|lp| lp.to_used_value(containing_block.inline_size)),
block: self.block.and_then(|lp| {
lp.maybe_percentage_relative_to(
containing_block.block_size.map(|t| t.into()).non_auto(),
)
lp.maybe_to_used_value(containing_block.block_size.map(Into::into).non_auto())
}),
}
}
@ -211,15 +226,15 @@ impl LogicalVec2<Option<&'_ LengthPercentage>> {
impl LogicalVec2<Option<&'_ LengthPercentage>> {
pub(crate) fn maybe_percentages_relative_to_basis(
&self,
basis: &LogicalVec2<Option<Length>>,
) -> LogicalVec2<Option<Length>> {
basis: &LogicalVec2<Option<Au>>,
) -> LogicalVec2<Option<Au>> {
LogicalVec2 {
inline: self
.inline
.and_then(|v| v.maybe_percentage_relative_to(basis.inline)),
.and_then(|v| v.maybe_to_used_value(basis.inline.map(Into::into))),
block: self
.block
.and_then(|v| v.maybe_percentage_relative_to(basis.block)),
.and_then(|v| v.maybe_to_used_value(basis.block.map(Into::into))),
}
}
}
@ -389,14 +404,14 @@ impl<T: Copy> LogicalSides<T> {
}
impl LogicalSides<&'_ LengthPercentage> {
pub fn percentages_relative_to(&self, basis: Length) -> LogicalSides<Length> {
self.map(|s| s.percentage_relative_to(basis))
pub fn percentages_relative_to(&self, basis: Au) -> LogicalSides<Au> {
self.map(|value| value.to_used_value(basis))
}
}
impl LogicalSides<LengthPercentageOrAuto<'_>> {
pub fn percentages_relative_to(&self, basis: Length) -> LogicalSides<LengthOrAuto> {
self.map(|s| s.percentage_relative_to(basis))
pub fn percentages_relative_to(&self, basis: Au) -> LogicalSides<AuOrAuto> {
self.map(|value| value.map(|value| value.to_used_value(basis)))
}
}