diff options
Diffstat (limited to 'components/layout_2020')
-rw-r--r-- | components/layout_2020/flexbox/layout.rs | 33 | ||||
-rw-r--r-- | components/layout_2020/sizing.rs | 7 |
2 files changed, 15 insertions, 25 deletions
diff --git a/components/layout_2020/flexbox/layout.rs b/components/layout_2020/flexbox/layout.rs index 2b699d75ab7..65d6c7e1554 100644 --- a/components/layout_2020/flexbox/layout.rs +++ b/components/layout_2020/flexbox/layout.rs @@ -1882,12 +1882,20 @@ impl FlexItem<'_> { } else { ( cross_size.auto_is(|| { + let style = self.box_.style(); + let stretch_size = + Au::zero().max(containing_block.inline_size - self.pbm_auto_is_zero.cross); + if flex_context + .config + .item_with_auto_cross_size_stretches_to_container_size(style, &self.margin) + { + return stretch_size; + } let constraint_space = ConstraintSpace::new( SizeConstraint::Definite(used_main_size), item_writing_mode, ); - let content_contributions = self - .box_ + self.box_ .independent_formatting_context .inline_content_sizes( flex_context.layout_context, @@ -1895,22 +1903,11 @@ impl FlexItem<'_> { &containing_block.into(), ) .sizes - .map(|size| { - size.clamp_between_extremums( - self.content_min_size.cross, - self.content_max_size.cross, - ) - }); - let stretch_size = containing_block.inline_size - self.pbm_auto_is_zero.cross; - let style = self.box_.style(); - if flex_context - .config - .item_with_auto_cross_size_stretches_to_container_size(style, &self.margin) - { - stretch_size - } else { - content_contributions.shrink_to_fit(stretch_size) - } + .shrink_to_fit(stretch_size) + .clamp_between_extremums( + self.content_min_size.cross, + self.content_max_size.cross, + ) }), // The main size of a flex item is considered to be definite if its flex basis is definite // or the flex container has a definite main size. diff --git a/components/layout_2020/sizing.rs b/components/layout_2020/sizing.rs index f7b691dbcde..8e1c467d196 100644 --- a/components/layout_2020/sizing.rs +++ b/components/layout_2020/sizing.rs @@ -40,13 +40,6 @@ pub(crate) struct ContentSizes { /// <https://drafts.csswg.org/css-sizing/#intrinsic-sizes> impl ContentSizes { - pub fn map(&self, f: impl Fn(Au) -> Au) -> Self { - Self { - min_content: f(self.min_content), - max_content: f(self.max_content), - } - } - pub fn max(&self, other: Self) -> Self { Self { min_content: self.min_content.max(other.min_content), |