From 3cdd164efb7e8276af6cdc1c5f49dcc1d30fd952 Mon Sep 17 00:00:00 2001 From: jcopperfield <33193571+jcopperfield@users.noreply.github.com> Date: Wed, 23 May 2018 03:11:28 +0200 Subject: [PATCH] Bug: Avoid updating Chart when `responsive: true` and Chart is hidden. (#5172) * Bug: Avoid updating Chart when `responsive: true` and Chart is hidden. * Prevent `drawing` when width/height is invalid. --- src/core/core.controller.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/core.controller.js b/src/core/core.controller.js index d27967d3941..3445cb51801 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -181,7 +181,7 @@ module.exports = function(Chart) { // the canvas render width and height will be casted to integers so make sure that // the canvas display style uses the same integer values to avoid blurring effect. - // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased + // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed var newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas))); var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas))); @@ -561,6 +561,10 @@ module.exports = function(Chart) { me.transition(easingValue); + if (me.width <= 0 || me.height <= 0) { + return; + } + if (plugins.notify(me, 'beforeDraw', [easingValue]) === false) { return; }