Skip to content

Commit

Permalink
Fix main size calculation from the aspect ratio
Browse files Browse the repository at this point in the history
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 f751c34
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions ReactCommon/yoga/yoga/Yoga.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit f751c34

Please sign in to comment.