Line points need always need to pivot after regardless of whether or not bezier points are updated. Bezier points should only be updated if the line tension is not 0.

This commit is contained in:
Evert Timberg 2016-05-26 20:02:46 -04:00
parent 40d76b6a7b
commit c6eb8bf58c

View File

@ -32,11 +32,12 @@ module.exports = function(Chart) {
addElementAndReset: function(index) { addElementAndReset: function(index) {
var me = this; var me = this;
var options = me.chart.options; var options = me.chart.options;
var meta = me.getMeta();
Chart.DatasetController.prototype.addElementAndReset.call(me, index); Chart.DatasetController.prototype.addElementAndReset.call(me, index);
// Make sure bezier control points are updated // Make sure bezier control points are updated
if (options.showLines && options.elements.line.tension !== 0) { if (options.showLines && meta.dataset._model.tension !== 0) {
me.updateBezierControlPoints(); me.updateBezierControlPoints();
} }
}, },
@ -92,9 +93,14 @@ module.exports = function(Chart) {
me.updateElement(points[i], i, reset); me.updateElement(points[i], i, reset);
} }
if (options.showLines && lineElementOptions.tension !== 0) { if (options.showLines && line._model.tension !== 0) {
me.updateBezierControlPoints(); me.updateBezierControlPoints();
} }
// Now pivot the point for animation
for (i=0, ilen=points.length; i<ilen; ++i) {
points[i].pivot();
}
}, },
getPointBackgroundColor: function(point, index) { getPointBackgroundColor: function(point, index) {
@ -244,9 +250,6 @@ module.exports = function(Chart) {
model.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, area.bottom), area.top); model.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, area.bottom), area.top);
model.controlPointNextX = Math.max(Math.min(controlPoints.next.x, area.right), area.left); model.controlPointNextX = Math.max(Math.min(controlPoints.next.x, area.right), area.left);
model.controlPointNextY = Math.max(Math.min(controlPoints.next.y, area.bottom), area.top); model.controlPointNextY = Math.max(Math.min(controlPoints.next.y, area.bottom), area.top);
// Now pivot the point for animation
point.pivot();
} }
}, },