From: François-Xavier Bourlet Date: Wed, 2 Nov 2011 04:54:42 +0000 (-0700) Subject: fix js exception on interactive zoom X-Git-Tag: v1.0.0~413^2 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=fa54c193cdc1702443f5a13f345b6649b708cf81;p=dygraphs.git fix js exception on interactive zoom I only tried and noticed this bug with chrome and firefox. The bug was introduced in commit: 920208fbb3565a1f9075d49a7be486819bdd1174 The code is trying to access to a non existent property "this.layout_.plotArea" while the correct version seem to be "this.layout_.getPlotArea()". --- diff --git a/dygraph.js b/dygraph.js index 3393d7d..ff05507 100644 --- a/dygraph.js +++ b/dygraph.js @@ -1179,25 +1179,25 @@ Dygraph.prototype.drawZoomRect_ = function(direction, startX, endX, startY, // Clean up from the previous rect if necessary if (prevDirection == Dygraph.HORIZONTAL) { - ctx.clearRect(Math.min(startX, prevEndX), this.layout_.plotArea.y, - Math.abs(startX - prevEndX), this.layout_.plotArea.h); + ctx.clearRect(Math.min(startX, prevEndX), this.layout_.getPlotArea().y, + Math.abs(startX - prevEndX), this.layout_.getPlotArea().h); } else if (prevDirection == Dygraph.VERTICAL){ - ctx.clearRect(this.layout_.plotArea.x, Math.min(startY, prevEndY), - this.layout_.plotArea.w, Math.abs(startY - prevEndY)); + ctx.clearRect(this.layout_.getPlotArea().x, Math.min(startY, prevEndY), + this.layout_.getPlotArea().w, Math.abs(startY - prevEndY)); } // Draw a light-grey rectangle to show the new viewing area if (direction == Dygraph.HORIZONTAL) { if (endX && startX) { ctx.fillStyle = "rgba(128,128,128,0.33)"; - ctx.fillRect(Math.min(startX, endX), this.layout_.plotArea.y, - Math.abs(endX - startX), this.layout_.plotArea.h); + ctx.fillRect(Math.min(startX, endX), this.layout_.getPlotArea().y, + Math.abs(endX - startX), this.layout_.getPlotArea().h); } } else if (direction == Dygraph.VERTICAL) { if (endY && startY) { ctx.fillStyle = "rgba(128,128,128,0.33)"; - ctx.fillRect(this.layout_.plotArea.x, Math.min(startY, endY), - this.layout_.plotArea.w, Math.abs(endY - startY)); + ctx.fillRect(this.layout_.getPlotArea().x, Math.min(startY, endY), + this.layout_.getPlotArea().w, Math.abs(endY - startY)); } }