Fix main size calculation from the aspect ratio
Summary: When the following conditions are met, the main size become smaller by the margins in the main axis. * The aspect ratio is defined * The main size is not defined * The cross size is defined * The main margin is defined This is because the main margin size is not included when calculating the main size from the aspect ratio. Closes https://github.com/facebook/yoga/pull/715 Reviewed By: emilsjolander Differential Revision: D6998988 Pulled By: priteshrnandgaonkar fbshipit-source-id: f6f69c47ece17bd7c5e41517b96032bf0c149356
This commit is contained in:
parent
f7f5dc6649
commit
f751c3460e
|
@ -1102,10 +1102,11 @@ static void YGNodeComputeFlexBasisForChild(const YGNodeRef node,
|
||||||
|
|
||||||
if (!YGFloatIsUndefined(child->getStyle().aspectRatio)) {
|
if (!YGFloatIsUndefined(child->getStyle().aspectRatio)) {
|
||||||
if (!isMainAxisRow && childWidthMeasureMode == YGMeasureModeExactly) {
|
if (!isMainAxisRow && childWidthMeasureMode == YGMeasureModeExactly) {
|
||||||
childHeight = (childWidth - marginRow) / child->getStyle().aspectRatio;
|
childHeight = marginColumn +
|
||||||
|
(childWidth - marginRow) / child->getStyle().aspectRatio;
|
||||||
childHeightMeasureMode = YGMeasureModeExactly;
|
childHeightMeasureMode = YGMeasureModeExactly;
|
||||||
} else if (isMainAxisRow && childHeightMeasureMode == YGMeasureModeExactly) {
|
} else if (isMainAxisRow && childHeightMeasureMode == YGMeasureModeExactly) {
|
||||||
childWidth =
|
childWidth = marginRow +
|
||||||
(childHeight - marginColumn) * child->getStyle().aspectRatio;
|
(childHeight - marginColumn) * child->getStyle().aspectRatio;
|
||||||
childWidthMeasureMode = YGMeasureModeExactly;
|
childWidthMeasureMode = YGMeasureModeExactly;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue