From 12bf256fd551b172f4a72111433eb69382640956 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Wed, 28 Apr 2021 23:42:08 +0300 Subject: [PATCH] Ignore truncated pixels in bar width calculation (#8995) --- src/controllers/controller.bar.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/controllers/controller.bar.js b/src/controllers/controller.bar.js index fa1075867..bec996ac1 100644 --- a/src/controllers/controller.bar.js +++ b/src/controllers/controller.bar.js @@ -1,7 +1,7 @@ import DatasetController from '../core/core.datasetController'; import { clipArea, unclipArea, _arrayUnique, isArray, isNullOrUndef, - valueOrDefault, resolveObjectKey, sign + valueOrDefault, resolveObjectKey, sign, defined } from '../helpers'; function getAllScaleValues(scale) { @@ -26,7 +26,14 @@ function computeMinSampleSize(scale) { let min = scale._length; let i, ilen, curr, prev; const updateMinAndPrev = () => { - min = Math.min(min, i && Math.abs(curr - prev) || min); + if (curr === 32767 || curr === -32768) { + // Ingnore truncated pixels + return; + } + if (defined(prev)) { + // curr - prev === 0 is ignored + min = Math.min(min, Math.abs(curr - prev) || min); + } prev = curr; }; @@ -35,6 +42,7 @@ function computeMinSampleSize(scale) { updateMinAndPrev(); } + prev = undefined; for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) { curr = scale.getPixelForTick(i); updateMinAndPrev(); -- 2.47.2