From 7c39bb3afb3c51a48ac23bacf93ac74c697aaf71 Mon Sep 17 00:00:00 2001 From: Dan Vanderkam Date: Fri, 21 Nov 2014 22:16:05 -0500 Subject: [PATCH] Fixes for pixelRatio != 1 --- dygraph-canvas.js | 6 +++--- dygraph-interaction-model.js | 3 +-- dygraph.js | 5 ++--- plugins/axes.js | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/dygraph-canvas.js b/dygraph-canvas.js index df8bfb5..4ebf5bc 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -53,8 +53,8 @@ var DygraphCanvasRenderer = function(dygraph, element, elementContext, layout) { this.element = element; this.elementContext = elementContext; - this.height = this.element.height; - this.width = this.element.width; + this.height = dygraph.height_; + this.width = dygraph.width_; // --- check whether everything is ok before we return // NOTE(konigsberg): isIE is never defined in this object. Bug of some sort. @@ -185,7 +185,7 @@ DygraphCanvasRenderer.prototype._createIEClipArea = function() { // Right side createClipDiv({ x: plotArea.x + plotArea.w, y: 0, - w: this.width-plotArea.x - plotArea.w, + w: this.width - plotArea.x - plotArea.w, h: this.height }); diff --git a/dygraph-interaction-model.js b/dygraph-interaction-model.js index a2f17c6..c58f2a5 100644 --- a/dygraph-interaction-model.js +++ b/dygraph-interaction-model.js @@ -371,6 +371,7 @@ Dygraph.Interaction.treatMouseOpAsClick = function(g, event, context) { * context. */ Dygraph.Interaction.endZoom = function(event, g, context) { + g.clearZoomRect_(); context.isZooming = false; Dygraph.Interaction.maybeTreatMouseOpAsClick(event, g, context); @@ -398,8 +399,6 @@ Dygraph.Interaction.endZoom = function(event, g, context) { g.doZoomY_(top, bottom); } context.cancelNextDblclick = true; - } else { - if (context.zoomMoved) g.clearZoomRect_(); } context.dragStartX = null; context.dragStartY = null; diff --git a/dygraph.js b/dygraph.js index a87695a..c9130e4 100644 --- a/dygraph.js +++ b/dygraph.js @@ -1603,7 +1603,7 @@ Dygraph.prototype.drawZoomRect_ = function(direction, startX, endX, startY, */ Dygraph.prototype.clearZoomRect_ = function() { this.currentZoomRectArgs_ = null; - this.canvas_ctx_.clearRect(0, 0, this.canvas_.width, this.canvas_.height); + this.canvas_ctx_.clearRect(0, 0, this.width_, this.height_); }; /** @@ -2725,8 +2725,7 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw) { // TODO(danvk): is this a performance bottleneck when panning? // The interaction canvas should already be empty in that situation. - this.canvas_.getContext('2d').clearRect(0, 0, this.canvas_.width, - this.canvas_.height); + this.canvas_.getContext('2d').clearRect(0, 0, this.width_, this.height_); if (this.getFunctionOption("drawCallback") !== null) { this.getFunctionOption("drawCallback")(this, is_initial_draw); diff --git a/plugins/axes.js b/plugins/axes.js index 6623a0b..239d36c 100644 --- a/plugins/axes.js +++ b/plugins/axes.js @@ -112,8 +112,8 @@ axes.prototype.willDrawChart = function(e) { var context = e.drawingContext; var containerDiv = e.canvas.parentNode; - var canvasWidth = e.canvas.width; - var canvasHeight = e.canvas.height; + var canvasWidth = g.width_; // e.canvas.width is affected by pixel ratio. + var canvasHeight = g.height_; var label, x, y, tick, i; -- 2.7.4