Merge pull request #9076 from penpot/alotor-fix-flex-align-self

🐛 Fix default alignself behavior
This commit is contained in:
Elena Torró 2026-04-22 11:55:00 +02:00 committed by GitHub
commit ba1842792f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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,
}, },
}; };