diff --git a/frontend/src/app/render_wasm/shape.cljs b/frontend/src/app/render_wasm/shape.cljs index 97d24b75b4..f5b581f674 100644 --- a/frontend/src/app/render_wasm/shape.cljs +++ b/frontend/src/app/render_wasm/shape.cljs @@ -164,7 +164,8 @@ :grow-type (api/set-shape-grow-type v) - (:layout-item-margin + (:layout-item-align-self + :layout-item-margin :layout-item-margin-type :layout-item-h-sizing :layout-item-v-sizing diff --git a/render-wasm/src/shapes/modifiers/flex_layout.rs b/render-wasm/src/shapes/modifiers/flex_layout.rs index ea2e55d280..6026abdc6d 100644 --- a/render-wasm/src/shapes/modifiers/flex_layout.rs +++ b/render-wasm/src/shapes/modifiers/flex_layout.rs @@ -541,23 +541,23 @@ fn child_position( child_axis: &ChildAxis, track: &TrackData, ) -> Point { - let delta = child_axis.margin_across_start - + 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, - _ => 0.0, - }, - _ => 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, - _ => 0.0, - }, - }; - shape_anchor + layout_axis.main_v * child_axis.margin_main_start + layout_axis.across_v * delta + 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, + _ => 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, + _ => child_axis.margin_across_start, + }, + }; + + shape_anchor + layout_axis.main_v * child_axis.margin_main_start + layout_axis.across_v * across_position } pub fn reflow_flex_layout(