🐛 Fix default alignself behavior

This commit is contained in:
alonso.torres 2026-04-21 14:33:16 +02:00
parent c636517499
commit 719f4a5035

View File

@ -551,30 +551,27 @@ fn child_position(
child_axis: &ChildAxis, child_axis: &ChildAxis,
track: &TrackData, track: &TrackData,
) -> Point { ) -> 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 { let across_position = 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 => { AlignSelf::Center => mid_point,
(track.across_size - child_axis.across_size + child_axis.margin_across_start AlignSelf::End => end_point,
- child_axis.margin_across_end) _ => match layout_data.align_items {
/ 2.0 AlignItems::Center => mid_point,
} AlignItems::End => end_point,
AlignSelf::End => { _ => child_axis.margin_across_start,
track.across_size - child_axis.across_size - child_axis.margin_across_end },
}
_ => child_axis.margin_across_start,
}, },
_ => match layout_data.align_items { _ => match layout_data.align_items {
AlignItems::Center => { AlignItems::Center => mid_point,
(track.across_size - child_axis.across_size + child_axis.margin_across_start AlignItems::End => end_point,
- child_axis.margin_across_end)
/ 2.0
}
AlignItems::End => {
track.across_size - child_axis.across_size - child_axis.margin_across_end
}
_ => child_axis.margin_across_start, _ => child_axis.margin_across_start,
}, },
}; };