Fix bug 329 which accumulates clipping rectangles on subsequent draws.
authorRobert Konigsberg <konigsberg@gmail.com>
Sat, 9 Feb 2013 19:14:09 +0000 (14:14 -0500)
committerRobert Konigsberg <konigsberg@gmail.com>
Sat, 9 Feb 2013 19:14:53 +0000 (14:14 -0500)
dygraph-canvas.js
dygraph.js

index 0e1bc75..e531ece 100644 (file)
@@ -57,6 +57,8 @@ var DygraphCanvasRenderer = function(dygraph, element, elementContext, layout) {
   this.height = this.element.height;
   this.width = this.element.width;
 
+  this.elementContext.save();
+
   // --- check whether everything is ok before we return
   if (!this.isIE && !(DygraphCanvasRenderer.isSupported(this.element)))
       throw "Canvas is not supported.";
@@ -125,6 +127,11 @@ DygraphCanvasRenderer.prototype.clear = function() {
   context.clearRect(0, 0, this.width, this.height);
 };
 
+DygraphCanvasRenderer.prototype.onDoneDrawing = function() {
+  // balances the save called in the constructor.
+  this.elementContext.restore();
+}
+
 /**
  * Checks whether the browser supports the &lt;canvas&gt; tag.
  * @private
index a02d919..f198cff 100644 (file)
@@ -2200,6 +2200,8 @@ Dygraph.prototype.predraw_ = function() {
   // If the data or options have changed, then we'd better redraw.
   this.drawGraph_();
 
+  this.plotter_.onDoneDrawing();
+
   // This is used to determine whether to do various animations.
   var end = new Date();
   this.drawingTimeMs_ = (end - start);