From 68c67b64c5a3a31fce0d0fe897fdbf0b36b71c2a Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 8 Sep 2016 16:24:11 -0700 Subject: [PATCH] Use delta when scale factor is above 2 and odd --- spec/api-browser-window-spec.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/spec/api-browser-window-spec.js b/spec/api-browser-window-spec.js index d8304e51a7d..e3e48200287 100644 --- a/spec/api-browser-window-spec.js +++ b/spec/api-browser-window-spec.js @@ -1355,7 +1355,7 @@ describe('browser-window module', function () { }) const assertBoundsEqual = (actual, expect) => { - if (isIntegerScaleFactor()) { + if (!isScaleFactorRounding()) { assert.deepEqual(expect, actual) } else if (Array.isArray(actual)) { assertWithinDelta(actual[0], expect[0], 1, 'x') @@ -1373,7 +1373,12 @@ const assertWithinDelta = (actual, expect, delta, label) => { assert.ok(result <= delta, `${label} value of ${expect} was not within ${delta} of ${actual}`) } -const isIntegerScaleFactor = () => { +// Is the display's scale factor possibly causing rounding of pixel coordinate +// values? +const isScaleFactorRounding = () => { const {scaleFactor} = screen.getPrimaryDisplay() - return Math.round(scaleFactor) === scaleFactor + // Return true if scale factor is non-integer value + if (Math.round(scaleFactor) === scaleFactor) return true + // Return true if scale factor is odd number above 2 + return scaleFactor > 2 && scaleFactor % 2 === 1 }