mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
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:
parent
9346d9cc8d
commit
095590e224
13 changed files with 240 additions and 272 deletions
|
@ -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)))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue