From 67b96fc0ce7729d185cb6b9dae207a6f319454c4 Mon Sep 17 00:00:00 2001 From: Emil Sjolander Date: Fri, 12 May 2017 09:03:23 -0700 Subject: [PATCH] Include margin when calculating if children overflow Reviewed By: passy Differential Revision: D5044471 fbshipit-source-id: e7c1eb694445ffb898bcf375d9deefc558c49f11 --- ReactCommon/yoga/yoga/Yoga.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ReactCommon/yoga/yoga/Yoga.c b/ReactCommon/yoga/yoga/Yoga.c index dabd4c4e70d..5fc7610e825 100644 --- a/ReactCommon/yoga/yoga/Yoga.c +++ b/ReactCommon/yoga/yoga/Yoga.c @@ -2109,7 +2109,7 @@ static void YGNodelayoutImpl(const YGNodeRef node, } } - float totalFlexBasis = 0; + float totalOuterFlexBasis = 0; // STEP 3: DETERMINE FLEX BASIS FOR EACH ITEM for (uint32_t i = 0; i < childCount; i++) { @@ -2162,11 +2162,14 @@ static void YGNodelayoutImpl(const YGNodeRef node, } } - totalFlexBasis += child->layout.computedFlexBasis; + totalOuterFlexBasis += + child->layout.computedFlexBasis + YGNodeMarginForAxis(child, mainAxis, availableInnerWidth); + ; } - const bool flexBasisOverflows = - measureModeMainDim == YGMeasureModeUndefined ? false : totalFlexBasis > availableInnerMainDim; + const bool flexBasisOverflows = measureModeMainDim == YGMeasureModeUndefined + ? false + : totalOuterFlexBasis > availableInnerMainDim; if (isNodeFlexWrap && flexBasisOverflows && measureModeMainDim == YGMeasureModeAtMost) { measureModeMainDim = YGMeasureModeExactly; }