🐛 Fix problem with flex layout in wasm

This commit is contained in:
alonso.torres 2025-06-20 09:42:21 +02:00 committed by Alonso Torres
parent 89fb802362
commit ac6a814026
2 changed files with 19 additions and 18 deletions

View file

@ -164,7 +164,8 @@
:grow-type :grow-type
(api/set-shape-grow-type v) (api/set-shape-grow-type v)
(:layout-item-margin (:layout-item-align-self
:layout-item-margin
:layout-item-margin-type :layout-item-margin-type
:layout-item-h-sizing :layout-item-h-sizing
:layout-item-v-sizing :layout-item-v-sizing

View file

@ -541,23 +541,23 @@ fn child_position(
child_axis: &ChildAxis, child_axis: &ChildAxis,
track: &TrackData, track: &TrackData,
) -> Point { ) -> Point {
let delta = child_axis.margin_across_start let across_position = match child.layout_item {
+ match child.layout_item { Some(LayoutItem {
Some(LayoutItem { align_self: Some(align_self),
align_self: Some(align_self), ..
.. }) => match align_self {
}) => match align_self { AlignSelf::Center => (track.across_size - child_axis.across_size) / 2.0,
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_start,
_ => 0.0, },
}, _ => match layout_data.align_items {
_ => match layout_data.align_items { AlignItems::Center => (track.across_size - child_axis.across_size) / 2.0,
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_start,
_ => 0.0, },
}, };
};
shape_anchor + layout_axis.main_v * child_axis.margin_main_start + layout_axis.across_v * delta shape_anchor + layout_axis.main_v * child_axis.margin_main_start + layout_axis.across_v * across_position
} }
pub fn reflow_flex_layout( pub fn reflow_flex_layout(