From: Evert Timberg Date: Mon, 18 May 2015 14:27:39 +0000 (-0400) Subject: Fix an error in the scale service that prevented the chart from filling the canvas... X-Git-Tag: v2.0-alpha~8^2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2065265c80622d68106988c53952f3e4a5aedaf;p=thirdparty%2FChart.js.git Fix an error in the scale service that prevented the chart from filling the canvas fully. --- diff --git a/src/Chart.Scale.js b/src/Chart.Scale.js index 681f44bc8..e07aacb03 100644 --- a/src/Chart.Scale.js +++ b/src/Chart.Scale.js @@ -148,16 +148,24 @@ var horizontalScaleHeight = (height - chartHeight) / (topScales.length + bottomScales.length); // Step 4; - var scalesToMinSize = {}; + var minimumScaleSizes = []; var verticalScaleMinSizeFunction = function(scaleInstance) { var minSize = scaleInstance.fit(verticalScaleWidth, chartHeight); - scalesToMinSize[scaleInstance] = minSize; + minimumScaleSizes.push({ + horizontal: false, + minSize: minSize, + scale: scaleInstance, + }); }; var horizontalScaleMinSizeFunction = function(scaleInstance) { var minSize = scaleInstance.fit(chartWidth, horizontalScaleHeight); - scalesToMinSize[scaleInstance] = minSize; + minimumScaleSizes.push({ + horizontal: true, + minSize: minSize, + scale: scaleInstance, + }); }; // vertical scales @@ -172,18 +180,13 @@ var maxChartHeight = height - (2 * yPadding); var maxChartWidth = width - (2 * xPadding); - var chartWidthReduceFunction = function(scaleInstance) { - maxChartWidth -= scalesToMinSize[scaleInstance].width; - }; - - var chartHeightReduceFunction = function(scaleInstance) { - maxChartHeight -= scalesToMinSize[scaleInstance].height; - }; - - helpers.each(leftScales, chartWidthReduceFunction); - helpers.each(rightScales, chartWidthReduceFunction); - helpers.each(topScales, chartHeightReduceFunction); - helpers.each(bottomScales, chartHeightReduceFunction); + helpers.each(minimumScaleSizes, function(wrapper) { + if (wrapper.horizontal) { + maxChartHeight -= wrapper.minSize.height; + } else { + maxChartWidth -= wrapper.minSize.width; + } + }); // At this point, maxChartHeight and maxChartWidth are the size the chart area could // be if the axes are drawn at their minimum sizes. @@ -204,13 +207,23 @@ // Step 6 var verticalScaleFitFunction = function(scaleInstance) { - var minSize = scalesToMinSize[scaleInstance]; - scaleInstance.fit(minSize.width, maxChartHeight); + var wrapper = helpers.findNextWhere(minimumScaleSizes, function(wrapper) { + return wrapper.scale === scaleInstance; + }); + + if (wrapper) { + scaleInstance.fit(wrapper.minSize.width, maxChartHeight); + } }; var horizontalScaleFitFunction = function(scaleInstance) { - var minSize = scalesToMinSize[scaleInstance]; - scaleInstance.fit(maxChartWidth, minSize.width); + var wrapper = helpers.findNextWhere(minimumScaleSizes, function(wrapper) { + return wrapper.scale === scaleInstance; + }); + + if (wrapper) { + scaleInstance.fit(maxChartWidth, wrapper.minSize.width); + } }; helpers.each(leftScales, verticalScaleFitFunction);