From b9127312529ba56047d8facc352966f53d0cb0d1 Mon Sep 17 00:00:00 2001 From: Nico Burns Date: Wed, 20 Aug 2025 14:27:08 +0100 Subject: [PATCH] Flexbox: don't apply cross-axis stretch alignment to children with auto margins Signed-off-by: Nico Burns --- src/compute/flexbox.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compute/flexbox.rs b/src/compute/flexbox.rs index e5c4aef8a..384e9f530 100644 --- a/src/compute/flexbox.rs +++ b/src/compute/flexbox.rs @@ -676,7 +676,11 @@ fn determine_flex_base_size( // Known dimensions for child sizing let child_known_dimensions = { let mut ckd = child.size.with_main(dir, None); - if child.align_self == AlignSelf::Stretch && ckd.cross(dir).is_none() { + if child.align_self == AlignSelf::Stretch + && !child.margin_is_auto.cross_start(constants.dir) + && !child.margin_is_auto.cross_end(constants.dir) + && ckd.cross(dir).is_none() + { ckd.set_cross( dir, cross_axis_available_space.into_option().maybe_sub(child.margin.cross_axis_sum(dir)),