Remove double-call of treatMouseOpAsClick, and also pass event, which
[dygraphs.git] / dygraph-canvas.js
index fb454c9..d6570d1 100644 (file)
@@ -70,7 +70,7 @@ DygraphLayout.prototype.setAnnotations = function(ann) {
       return;
     }
     Dygraph.update(a, ann[i]);
-    if (!a.xval) a.xval = parse(a.x);
+    if (!a.xval) a.xval = parse(a.x, this.dygraph_);
     this.annotations.push(a);
   }
 };
@@ -334,12 +334,18 @@ DygraphCanvasRenderer.prototype.attr_ = function(x) {
 DygraphCanvasRenderer.prototype.computeArea_ = function() {
   var area = {
     // TODO(danvk): per-axis setting.
-    x: this.attr_('yAxisLabelWidth') + 2 * this.attr_('axisTickSize'),
+    x: 0,
     y: 0
   };
+  if (this.attr_('drawYAxis')) {
+   area.x = this.attr_('yAxisLabelWidth') + 2 * this.attr_('axisTickSize');
+  }
+
   area.w = this.width - area.x - this.attr_('rightGap');
-  area.h = this.height - this.attr_('axisLabelFontSize') -
-                2 * this.attr_('axisTickSize');
+  area.h = this.height;
+  if (this.attr_('drawXAxis')) {
+    area.h -= this.attr_('axisLabelFontSize') + 2 * this.attr_('axisTickSize');
+  }
 
   // Shrink the drawing area to accomodate additional y-axes.
   if (this.dygraph_.numAxes() == 2) {
@@ -515,14 +521,18 @@ DygraphCanvasRenderer.prototype._renderAxis = function() {
     width: this.attr_('axisLabelWidth') + "px",
     overflow: "hidden"
   };
-  var makeDiv = function(txt) {
+  var makeDiv = function(txt, axis) {
     var div = document.createElement("div");
     for (var name in labelStyle) {
       if (labelStyle.hasOwnProperty(name)) {
         div.style[name] = labelStyle[name];
       }
     }
-    div.appendChild(document.createTextNode(txt));
+    var inner_div = document.createElement("div");
+    // TODO(danvk): separate class for secondary y-axis
+    inner_div.className = 'dygraph-axis-label dygraph-axis-label-' + axis;
+    inner_div.appendChild(document.createTextNode(txt));
+    div.appendChild(inner_div);
     return div;
   };
 
@@ -549,7 +559,7 @@ DygraphCanvasRenderer.prototype._renderAxis = function() {
         context.closePath();
         context.stroke();
 
-        var label = makeDiv(tick[2]);
+        var label = makeDiv(tick[2], 'y');
         var top = (y - this.attr_('axisLabelFontSize') / 2);
         if (top < 0) top = 0;
 
@@ -614,7 +624,7 @@ DygraphCanvasRenderer.prototype._renderAxis = function() {
         context.closePath();
         context.stroke();
 
-        var label = makeDiv(tick[1]);
+        var label = makeDiv(tick[1], 'x');
         label.style.textAlign = "center";
         label.style.top = (y + this.attr_('axisTickSize')) + 'px';
 
@@ -846,7 +856,7 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() {
   // TODO(danvk): use this.attr_ for many of these.
   var context = this.elementContext;
   var fillAlpha = this.attr_('fillAlpha');
-  var errorBars = this.attr_("errorBars");
+  var errorBars = this.attr_("errorBars") || this.attr_("customBars");
   var fillGraph = this.attr_("fillGraph");
   var stackedGraph = this.attr_("stackedGraph");
   var stepPlot = this.attr_("stepPlot");
@@ -1029,7 +1039,7 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() {
           var isIsolated = (!prevX && (j == points.length - 1 ||
                                        !Dygraph.isOK(points[j+1].canvasy)));
 
-          if (!prevX) {
+          if (prevX === null) {
             prevX = point.canvasx;
             prevY = point.canvasy;
           } else {