From bef44ccb461dbf2211dbc14a4b1535d4810b8411 Mon Sep 17 00:00:00 2001 From: Peter-Van-Drunen Date: Fri, 23 Jun 2017 18:08:16 -0400 Subject: [PATCH] Ensure that chart dimensions are always >= 0 Elements were resizing incorrectly if they were regenerated while the chart was in a div that was display:none. Added a check to avoid this issue. Resolves #4397 --- src/core/core.controller.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core/core.controller.js b/src/core/core.controller.js index 93546f569..0d21fc5f4 100644 --- a/src/core/core.controller.js +++ b/src/core/core.controller.js @@ -169,8 +169,10 @@ 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. - var newWidth = Math.floor(helpers.getMaximumWidth(canvas)); - var newHeight = Math.floor(aspectRatio? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)); + + // Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased + var newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas))); + var newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas))); if (me.width === newWidth && me.height === newHeight) { return;