Skip to content

Commit 18c239e

Browse files
woehrl01facebook-github-bot
authored andcommitted
Fix align-content: center, flex-end alignment with margin
Summary: This fixes ```align-content: center``` and ```align-content: flex-end``` when the child exceeds the parents size. See #476. It also fixes those layouts if the child has ```margin: auto``` set. Closes facebook/yoga#477 Differential Revision: D4697833 Pulled By: emilsjolander fbshipit-source-id: d081ec7ea559a5f2bd3271c3a4dc272960beddfa
1 parent 6cbb57d commit 18c239e

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

ReactCommon/yoga/yoga/Yoga.c

+2-6
Original file line numberDiff line numberDiff line change
@@ -2624,10 +2624,6 @@ static void YGNodelayoutImpl(const YGNodeRef node,
26242624
crossAxisParentSize,
26252625
parentWidth) -
26262626
paddingAndBorderAxisCross;
2627-
2628-
if (measureModeCrossDim == YGMeasureModeAtMost) {
2629-
containerCrossAxis = fminf(containerCrossAxis, availableInnerCrossDim);
2630-
}
26312627
}
26322628

26332629
// If there's no flex wrap, the cross dimension is defined by the container.
@@ -2735,11 +2731,11 @@ static void YGNodelayoutImpl(const YGNodeRef node,
27352731

27362732
if (YGMarginLeadingValue(child, crossAxis)->unit == YGUnitAuto &&
27372733
YGMarginTrailingValue(child, crossAxis)->unit == YGUnitAuto) {
2738-
leadingCrossDim += remainingCrossDim / 2;
2734+
leadingCrossDim += fmaxf(0.0f, remainingCrossDim / 2);
27392735
} else if (YGMarginTrailingValue(child, crossAxis)->unit == YGUnitAuto) {
27402736
// No-Op
27412737
} else if (YGMarginLeadingValue(child, crossAxis)->unit == YGUnitAuto) {
2742-
leadingCrossDim += remainingCrossDim;
2738+
leadingCrossDim += fmaxf(0.0f, remainingCrossDim);
27432739
} else if (alignItem == YGAlignFlexStart) {
27442740
// No-Op
27452741
} else if (alignItem == YGAlignCenter) {

0 commit comments

Comments
 (0)