Revert D4528559: [yoga][PR] Fix align-content strech with multiple lines
Summary: This reverts commit 019e6f85fa452d0c3412f711e3886f0c4452da47 Differential Revision: D4528559 fbshipit-source-id: 4bd82b399cb36acb348f2c6fedcae6b360513424
This commit is contained in:
committed by
Facebook Github Bot
parent
76fbd628e1
commit
0d2749a3fd
File diff suppressed because it is too large
Load Diff
@@ -6,23 +6,15 @@
|
|||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_flex_start_without_height_on_children" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: flex-start;">
|
<div id="align_content_flex_end" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: flex-end;">
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_flex_start_with_flex" style="width: 100px; height: 120px; flex-wrap: wrap; flex-direction: column; align-content: flex-start;">
|
<div id="align_content_center" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: center;">
|
||||||
<div style="width: 50px; flex: 1; flex-shrink: 0;"></div>
|
|
||||||
<div style="width: 50px; flex: 1; height: 10px; flex-shrink: 0;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; flex: 1;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_flex_end" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: flex-end;">
|
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -53,92 +45,3 @@
|
|||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_stretch_row" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_children" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;">
|
|
||||||
<div style="flex: 1;"></div>
|
|
||||||
</div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_flex" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; flex: 1;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; flex: 1;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_flex_no_shrink" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; flex: 1;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; flex: 1; flex-shrink: 0;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_margin" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; margin: 10px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; margin: 10px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_padding" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; padding: 10px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; padding: 10px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_single_row" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_fixed_height" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; height: 60px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_max_height" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; max-height: 20px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_row_with_min_height" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: stretch;">
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px; min-height: 80px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
<div style="width: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="align_content_stretch_column" style="width: 100px; height: 150px; flex-wrap: wrap; flex-direction: column; align-content: stretch;">
|
|
||||||
<div style="height: 50px;">
|
|
||||||
<div style="flex: 1;"></div>
|
|
||||||
</div>
|
|
||||||
<div style="height: 50px; flex: 1;"></div>
|
|
||||||
<div style="height: 50px;"></div>
|
|
||||||
<div style="height: 50px;"></div>
|
|
||||||
<div style="height: 50px;"></div>
|
|
||||||
</div>
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
50
yoga/Yoga.c
50
yoga/Yoga.c
@@ -2485,23 +2485,10 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
// the spacing.
|
// the spacing.
|
||||||
mainDim += betweenMainDim + YGNodeDimWithMargin(child, mainAxis, availableInnerWidth);
|
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
|
// The cross dimension is the max of the elements dimension since
|
||||||
// there
|
// there
|
||||||
// can only be one element in that cross dimension.
|
// can only be one element in that cross dimension.
|
||||||
crossDim =
|
crossDim = fmaxf(crossDim, YGNodeDimWithMargin(child, crossAxis, availableInnerWidth));
|
||||||
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)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (performLayout) {
|
} else if (performLayout) {
|
||||||
child->layout.position[pos[mainAxis]] +=
|
child->layout.position[pos[mainAxis]] +=
|
||||||
@@ -2665,8 +2652,7 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// STEP 8: MULTI-LINE CONTENT ALIGNMENT
|
// STEP 8: MULTI-LINE CONTENT ALIGNMENT
|
||||||
if (performLayout &&
|
if (performLayout && (lineCount > 1 || YGIsBaselineLayout(node)) &&
|
||||||
(lineCount > 1 || node->style.alignContent == YGAlignStretch || YGIsBaselineLayout(node)) &&
|
|
||||||
!YGFloatIsUndefined(availableInnerCrossDim)) {
|
!YGFloatIsUndefined(availableInnerCrossDim)) {
|
||||||
const float remainingAlignContentDim = availableInnerCrossDim - totalLineCrossDim;
|
const float remainingAlignContentDim = availableInnerCrossDim - totalLineCrossDim;
|
||||||
|
|
||||||
@@ -2774,36 +2760,8 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
case YGAlignStretch: {
|
case YGAlignStretch: {
|
||||||
child->layout.position[pos[crossAxis]] =
|
child->layout.position[pos[crossAxis]] =
|
||||||
currentLead + YGNodeLeadingMargin(child, crossAxis, availableInnerWidth);
|
currentLead + YGNodeLeadingMargin(child, crossAxis, availableInnerWidth);
|
||||||
|
// TODO(prenaux): Correctly set the height of items with indefinite
|
||||||
// Remeasure child with the line height as it as been only measured with the
|
// (auto) crossAxis dimension.
|
||||||
// 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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case YGAlignBaseline: {
|
case YGAlignBaseline: {
|
||||||
|
Reference in New Issue
Block a user