Revert D4528559: [yoga][PR] Fix align-content strech with multiple lines

Differential Revision: D4528559

fbshipit-source-id: 4bd82b399cb36acb348f2c6fedcae6b360513424
This commit is contained in:
Emil Sjolander 2017-02-13 01:05:23 -08:00 committed by Facebook Github Bot
parent 9e2d3c5d0d
commit 4ea355a362
1 changed files with 7 additions and 49 deletions

View File

@ -2485,23 +2485,10 @@ static void YGNodelayoutImpl(const YGNodeRef node,
// the spacing.
mainDim += betweenMainDim + YGNodeDimWithMargin(child, mainAxis, availableInnerWidth);
if (YGNodeIsStyleDimDefined(child, crossAxis, availableInnerCrossDim) ||
child->measure != NULL ||
!isNodeFlexWrap) {
// The cross dimension is the max of the elements dimension since
// there
// can only be one element in that cross dimension.
crossDim =
fmaxf(crossDim, YGNodeDimWithMargin(child, crossAxis, availableInnerWidth));
} else {
// If we wrap the lines we only take the space we need at least.
crossDim = fmaxf(
crossDim,
YGNodeMarginForAxis(child, crossAxis, availableInnerWidth) +
fmaxf(YGValueResolve(&child->style.minDimensions[dim[crossAxis]],
availableInnerWidth),
YGNodePaddingAndBorderForAxis(child, crossAxis, availableInnerWidth)));
}
// The cross dimension is the max of the elements dimension since
// there
// can only be one element in that cross dimension.
crossDim = fmaxf(crossDim, YGNodeDimWithMargin(child, crossAxis, availableInnerWidth));
}
} else if (performLayout) {
child->layout.position[pos[mainAxis]] +=
@ -2665,8 +2652,7 @@ static void YGNodelayoutImpl(const YGNodeRef node,
}
// STEP 8: MULTI-LINE CONTENT ALIGNMENT
if (performLayout &&
(lineCount > 1 || node->style.alignContent == YGAlignStretch || YGIsBaselineLayout(node)) &&
if (performLayout && (lineCount > 1 || YGIsBaselineLayout(node)) &&
!YGFloatIsUndefined(availableInnerCrossDim)) {
const float remainingAlignContentDim = availableInnerCrossDim - totalLineCrossDim;
@ -2774,36 +2760,8 @@ static void YGNodelayoutImpl(const YGNodeRef node,
case YGAlignStretch: {
child->layout.position[pos[crossAxis]] =
currentLead + YGNodeLeadingMargin(child, crossAxis, availableInnerWidth);
// Remeasure child with the line height as it as been only measured with the
// parents height yet.
if (!YGNodeIsStyleDimDefined(child, crossAxis, availableInnerCrossDim)) {
const float childWidth =
isMainAxisRow ? (child->layout.measuredDimensions[YGDimensionWidth] +
YGNodeMarginForAxis(child, crossAxis, availableInnerWidth))
: lineHeight;
const float childHeight =
!isMainAxisRow ? (child->layout.measuredDimensions[YGDimensionHeight] +
YGNodeMarginForAxis(child, crossAxis, availableInnerWidth))
: lineHeight;
if (!(YGFloatsEqual(childWidth,
child->layout.measuredDimensions[YGDimensionWidth]) &&
YGFloatsEqual(childHeight,
child->layout.measuredDimensions[YGDimensionHeight]))) {
YGLayoutNodeInternal(child,
childWidth,
childHeight,
direction,
YGMeasureModeExactly,
YGMeasureModeExactly,
availableInnerWidth,
availableInnerHeight,
true,
"stretch");
}
}
// TODO(prenaux): Correctly set the height of items with indefinite
// (auto) crossAxis dimension.
break;
}
case YGAlignBaseline: {