From 719f4a5035bb93ba045d8b6549c6a27a8e26a58e Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 21 Apr 2026 14:33:16 +0200 Subject: [PATCH] :bug: Fix default alignself behavior --- .../src/shapes/modifiers/flex_layout.rs | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/render-wasm/src/shapes/modifiers/flex_layout.rs b/render-wasm/src/shapes/modifiers/flex_layout.rs index 7661d93088..e4f0d29311 100644 --- a/render-wasm/src/shapes/modifiers/flex_layout.rs +++ b/render-wasm/src/shapes/modifiers/flex_layout.rs @@ -551,30 +551,27 @@ fn child_position( child_axis: &ChildAxis, track: &TrackData, ) -> Point { + let mid_point = (track.across_size - child_axis.across_size + child_axis.margin_across_start + - child_axis.margin_across_end) + / 2.0; + let end_point = track.across_size - child_axis.across_size - child_axis.margin_across_end; + 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 + child_axis.margin_across_start - - child_axis.margin_across_end) - / 2.0 - } - AlignSelf::End => { - track.across_size - child_axis.across_size - child_axis.margin_across_end - } - _ => child_axis.margin_across_start, + AlignSelf::Center => mid_point, + AlignSelf::End => end_point, + _ => match layout_data.align_items { + AlignItems::Center => mid_point, + AlignItems::End => end_point, + _ => child_axis.margin_across_start, + }, }, _ => match layout_data.align_items { - AlignItems::Center => { - (track.across_size - child_axis.across_size + child_axis.margin_across_start - - child_axis.margin_across_end) - / 2.0 - } - AlignItems::End => { - track.across_size - child_axis.across_size - child_axis.margin_across_end - } + AlignItems::Center => mid_point, + AlignItems::End => end_point, _ => child_axis.margin_across_start, }, };