Permalink
Browse files

Fix flex-shrink when shrinking to zero size

Reviewed By: gkassabli

Differential Revision: D4036345

fbshipit-source-id: f6848d7a316a694426f761d5e51d972bd379d90e
  • Loading branch information...
1 parent 1a6b43e commit 0699a30980ef08a87d51cd67e9d452c9aba427ed @emilsjolander emilsjolander committed with Facebook Github Bot Oct 18, 2016
Showing with 12 additions and 6 deletions.
  1. +12 −6 React/CSSLayout/CSSLayout.c
@@ -1550,14 +1550,20 @@ static void layoutNodeImpl(const CSSNodeRef node,
if (remainingFreeSpace < 0) {
flexShrinkScaledFactor = -currentRelativeChild->style.flexShrink * childFlexBasis;
-
// Is this child able to shrink?
if (flexShrinkScaledFactor != 0) {
- updatedMainSize = boundAxis(currentRelativeChild,
- mainAxis,
- childFlexBasis +
- remainingFreeSpace / totalFlexShrinkScaledFactors *
- flexShrinkScaledFactor);
+ float childSize;
+
+ if (totalFlexShrinkScaledFactors == 0) {
+ childSize = childFlexBasis + flexShrinkScaledFactor;
+ } else {
+ childSize =
+ childFlexBasis +
+ (remainingFreeSpace / totalFlexShrinkScaledFactors) *
+ flexShrinkScaledFactor;
+ }
+
+ updatedMainSize = boundAxis(currentRelativeChild, mainAxis, childSize);
}
} else if (remainingFreeSpace > 0) {
flexGrowFactor = currentRelativeChild->style.flexGrow;

0 comments on commit 0699a30

Please sign in to comment.