]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Ensure that radii are always >= 0 for doughnuts and polar area charts
authorEvert Timberg <evert.timberg@gmail.com>
Sun, 20 Sep 2015 14:33:36 +0000 (10:33 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Sun, 20 Sep 2015 14:33:36 +0000 (10:33 -0400)
src/controllers/controller.doughnut.js
src/controllers/controller.polarArea.js

index 2513a068985f2864b7b6b9a2c5f4ac49e546d888..d4586b4fca6d102434ddd0355cb8b373dec32338 100644 (file)
@@ -86,8 +86,8 @@
 
                update: function(reset) {
 
-                       this.chart.outerRadius = (helpers.min([this.chart.chart.width, this.chart.chart.height]) / 2) - this.chart.options.elements.arc.borderWidth / 2;
-                       this.chart.innerRadius = this.chart.options.cutoutPercentage ? (this.chart.outerRadius / 100) * (this.chart.options.cutoutPercentage) : 1;
+                       this.chart.outerRadius = Math.max((helpers.min([this.chart.chart.width, this.chart.chart.height]) / 2) - this.chart.options.elements.arc.borderWidth / 2, 0);
+                       this.chart.innerRadius = Math.max(this.chart.options.cutoutPercentage ? (this.chart.outerRadius / 100) * (this.chart.options.cutoutPercentage) : 1, 0);
                        this.chart.radiusLength = (this.chart.outerRadius - this.chart.innerRadius) / this.chart.data.datasets.length;
 
                        this.getDataset().total = 0;
index 4de24af6d25e647427fb5db1846881e1ae6e2abf..d832f09d18e924b01e016a0dc367d36e3f9b4dd9 100644 (file)
@@ -87,8 +87,8 @@
                        this.chart.scale.generateTicks();
                        this.chart.scale.buildYLabels();
 
-                       this.chart.outerRadius = (helpers.min([this.chart.chart.width, this.chart.chart.height]) - this.chart.options.elements.arc.borderWidth / 2) / 2;
-                       this.chart.innerRadius = this.chart.options.cutoutPercentage ? (this.chart.outerRadius / 100) * (this.chart.options.cutoutPercentage) : 1;
+                       this.chart.outerRadius = Math.max((helpers.min([this.chart.chart.width, this.chart.chart.height]) - this.chart.options.elements.arc.borderWidth / 2) / 2, 0);
+                       this.chart.innerRadius = Math.max(this.chart.options.cutoutPercentage ? (this.chart.outerRadius / 100) * (this.chart.options.cutoutPercentage) : 1, 0);
                        this.chart.radiusLength = (this.chart.outerRadius - this.chart.innerRadius) / this.chart.data.datasets.length;
 
                        this.getDataset().total = 0;