]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Commit built version of scale algo changes
authorEvert Timberg <evert.timberg@gmail.com>
Thu, 10 Sep 2015 00:28:34 +0000 (20:28 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Thu, 10 Sep 2015 00:28:34 +0000 (20:28 -0400)
Chart.js

index 35a27e8dbbe3555dc5c4ac099eb7b559dcefb217..9e0cef3205d0f59ab95e1d62d9f822a7c9658d2c 100644 (file)
--- a/Chart.js
+++ b/Chart.js
                                        }
                                });
 
+                               // Recalculate because the size of each scale might have changed slightly due to the margins (label rotation for instance)
+                               totalLeftWidth = xPadding;
+                               totalRightWidth = xPadding;
+                               totalTopHeight = yPadding;
+                               totalBottomHeight = yPadding;
+
+                               helpers.each(leftScales, function(scaleInstance) {
+                                       totalLeftWidth += scaleInstance.width;
+                               });
+
+                               helpers.each(rightScales, function(scaleInstance) {
+                                       totalRightWidth += scaleInstance.width;
+                               });
+
+                               helpers.each(topScales, function(scaleInstance) {
+                                       totalTopHeight += scaleInstance.height;
+                               });
+                               helpers.each(bottomScales, function(scaleInstance) {
+                                       totalBottomHeight += scaleInstance.height;
+                               });
+
+                               // Figure out if our chart area changed. This would occur if the dataset scale label rotation
+                               // changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do
+                               // without calling `fit` again
+                               var newMaxChartHeight = height - totalTopHeight - totalBottomHeight;
+                               var newMaxChartWidth = width - totalLeftWidth - totalRightWidth;
+
+                               if (newMaxChartWidth !== maxChartWidth || newMaxChartHeight !== maxChartHeight) {
+                                       helpers.each(leftScales, function(scale) {
+                                               scale.height = newMaxChartHeight;
+                                       });
+
+                                       helpers.each(rightScales, function(scale) {
+                                               scale.height = newMaxChartHeight;
+                                       });
+
+                                       helpers.each(topScales, function(scale) {
+                                               scale.width = newMaxChartWidth;
+                                       });
+
+                                       helpers.each(bottomScales, function(scale) {
+                                               scale.width = newMaxChartWidth;
+                                       });
+
+                                       maxChartHeight = newMaxChartHeight;
+                                       maxChartWidth = newMaxChartWidth;
+                               }
+
                                // Step 7 
                                // Position the scales
                                var left = xPadding;