From 70369ae5d38f9a52eae25f620f923945bf0b172d Mon Sep 17 00:00:00 2001 From: Jonathan Maurice Date: Tue, 19 Dec 2017 11:47:55 -0500 Subject: [PATCH] Fix negative value rounding issue for nodes across an axis --- yoga/Yoga.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index 3ccd103c..ab9e0ecf 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -3015,13 +3015,12 @@ float YGRoundValueToPixelGrid(const float value, scaledValue = scaledValue - fractial + 1.0; } else if (forceCeil) { // Next we check if we need to use forced rounding - scaledValue = scaledValue - fractial + 1.0f; + scaledValue = ceilf(scaledValue); } else if (forceFloor) { - scaledValue = scaledValue - fractial; + scaledValue = floorf(scaledValue); } else { // Finally we just round the value - scaledValue = scaledValue - fractial + - (fractial > 0.5f || YGFloatsEqual(fractial, 0.5f) ? 1.0f : 0.0f); + scaledValue = roundf(scaledValue); } return scaledValue / pointScaleFactor; }