From a55bd0e5fc8c285e02ee2d226e5969fc040b8816 Mon Sep 17 00:00:00 2001 From: Tobias Schneider Date: Fri, 2 Jun 2017 13:36:13 -0700 Subject: [PATCH] Bug 1369870 - Float to int cast in nsLayoutUtils::TransformRect is losing precision. r=mstange --- layout/base/nsLayoutUtils.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp index e3f208db0e50..8a1567bb8877 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -2865,10 +2865,10 @@ nsLayoutUtils::TransformRect(nsIFrame* aFromFrame, nsIFrame* aToFrame, -std::numeric_limits::max() * devPixelsPerAppUnitFromFrame * 0.5f, std::numeric_limits::max() * devPixelsPerAppUnitFromFrame, std::numeric_limits::max() * devPixelsPerAppUnitFromFrame)); - aRect.x = toDevPixels.x / devPixelsPerAppUnitToFrame; - aRect.y = toDevPixels.y / devPixelsPerAppUnitToFrame; - aRect.width = toDevPixels.width / devPixelsPerAppUnitToFrame; - aRect.height = toDevPixels.height / devPixelsPerAppUnitToFrame; + aRect.x = NSToCoordRound(toDevPixels.x / devPixelsPerAppUnitToFrame); + aRect.y = NSToCoordRound(toDevPixels.y / devPixelsPerAppUnitToFrame); + aRect.width = NSToCoordRound(toDevPixels.width / devPixelsPerAppUnitToFrame); + aRect.height = NSToCoordRound(toDevPixels.height / devPixelsPerAppUnitToFrame); return TRANSFORM_SUCCEEDED; }