Permalink
Browse files

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 facebook/yoga#715

Reviewed By: emilsjolander

Differential Revision: D6998988

Pulled By: priteshrnandgaonkar

fbshipit-source-id: f6f69c47ece17bd7c5e41517b96032bf0c149356
  • Loading branch information...
Yuichi ONO authored and facebook-github-bot committed Feb 15, 2018
1 parent f7f5dc6 commit f751c3460e5dc48c1f1a2d72a56173285899de21
Showing with 3 additions and 2 deletions.
  1. +3 −2 ReactCommon/yoga/yoga/Yoga.cpp
@@ -1102,10 +1102,11 @@ static void YGNodeComputeFlexBasisForChild(const YGNodeRef node,
if (!YGFloatIsUndefined(child->getStyle().aspectRatio)) {
if (!isMainAxisRow && childWidthMeasureMode == YGMeasureModeExactly) {
childHeight = (childWidth - marginRow) / child->getStyle().aspectRatio;
childHeight = marginColumn +
(childWidth - marginRow) / child->getStyle().aspectRatio;
childHeightMeasureMode = YGMeasureModeExactly;
} else if (isMainAxisRow && childHeightMeasureMode == YGMeasureModeExactly) {
childWidth =
childWidth = marginRow +
(childHeight - marginColumn) * child->getStyle().aspectRatio;
childWidthMeasureMode = YGMeasureModeExactly;
}

0 comments on commit f751c34

Please sign in to comment.