From 9994f1f133cb22d5023a10619c14b4fb86524208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Fri, 29 Aug 2025 13:19:37 +0200 Subject: [PATCH] Avoid compressing the cross-axis in `flex` layout --- core/src/layout/flex.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/layout/flex.rs b/core/src/layout/flex.rs index 0afc6e1b..33dfe6e8 100644 --- a/core/src/layout/flex.rs +++ b/core/src/layout/flex.rs @@ -78,14 +78,19 @@ where let total_spacing = spacing * items.len().saturating_sub(1) as f32; let max_cross = axis.cross(limits.max()); - let compression = limits.compression(); - let (main_compress, cross_compress) = - axis.pack(compression.width, compression.height); + let (main_compress, cross_compress) = { + let compression = limits.compression(); + axis.pack(compression.width, compression.height) + }; + + let compression = { + let (compress_x, compress_y) = axis.pack(main_compress, false); + Size::new(compress_x, compress_y) + }; let mut fill_main_sum = 0; let mut some_fill_cross = false; let mut cross = if cross_compress { 0.0 } else { max_cross }; - let mut available = axis.main(limits.max()) - total_spacing; let mut nodes: Vec = Vec::with_capacity(items.len());