From afec3b9bc157ed08e9caae66f9dc5f74dee7ce95 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 20 Jun 2025 12:38:47 +0200 Subject: [PATCH] :bug: Fix problem with margin in flex layout --- render-wasm/src/shapes/modifiers/flex_layout.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/render-wasm/src/shapes/modifiers/flex_layout.rs b/render-wasm/src/shapes/modifiers/flex_layout.rs index 6026abdc6d..7099b31aee 100644 --- a/render-wasm/src/shapes/modifiers/flex_layout.rs +++ b/render-wasm/src/shapes/modifiers/flex_layout.rs @@ -541,23 +541,29 @@ fn child_position( child_axis: &ChildAxis, track: &TrackData, ) -> Point { - let across_position = match child.layout_item { + let across_position = match child.layout_item { Some(LayoutItem { align_self: Some(align_self), .. }) => match align_self { AlignSelf::Center => (track.across_size - child_axis.across_size) / 2.0, - AlignSelf::End => track.across_size - child_axis.across_size - child_axis.margin_across_end, + AlignSelf::End => { + track.across_size - child_axis.across_size - child_axis.margin_across_end + } _ => child_axis.margin_across_start, }, _ => match layout_data.align_items { AlignItems::Center => (track.across_size - child_axis.across_size) / 2.0, - AlignItems::End => track.across_size - child_axis.across_size - child_axis.margin_across_end, + AlignItems::End => { + track.across_size - child_axis.across_size - child_axis.margin_across_end + } _ => child_axis.margin_across_start, }, }; - shape_anchor + layout_axis.main_v * child_axis.margin_main_start + layout_axis.across_v * across_position + shape_anchor + + layout_axis.main_v * child_axis.margin_main_start + + layout_axis.across_v * across_position } pub fn reflow_flex_layout(