Bug fix for dygraph point selection touch event.
[dygraphs.git] / src / dygraph-utils.js
index dabd4ea..54b6b69 100644 (file)
@@ -199,6 +199,7 @@ export function findPos(obj) {
  * @private
  */
 export function pageX(e) {
+  if (e.isTouchOver) return (!e.changedTouches[0] || e.changedTouches[0].pageX < 0) ? 0 : e.changedTouches[0].pageX;
   return (!e.pageX || e.pageX < 0) ? 0 : e.pageX;
 };
 
@@ -211,6 +212,7 @@ export function pageX(e) {
  * @private
  */
 export function pageY(e) {
+  if (e.isTouchOver) return (!e.changedTouches[0] || e.changedTouches[0].pageY < 0) ? 0 : e.changedTouches[0].pageY;
   return (!e.pageY || e.pageY < 0) ? 0 : e.pageY;
 };
 
@@ -1214,6 +1216,12 @@ export function dateAxisLabelFormatter(date, granularity, opts) {
     if (frac === 0 || granularity >= DygraphTickers.Granularity.DAILY) {
       // e.g. '21 Jan' (%d%b)
       return zeropad(day) + '&#160;' + SHORT_MONTH_NAMES_[month];
+    } else if (granularity < DygraphTickers.Granularity.SECONDLY) {
+      // e.g. 40.310 (meaning 40 seconds and 310 milliseconds)
+      var str = "" + millis;
+      return zeropad(secs) + "." + ('000'+str).substring(str.length);
+    } else if (granularity > DygraphTickers.Granularity.MINUTELY) {
+      return hmsString_(hours, mins, secs, 0);
     } else {
       return hmsString_(hours, mins, secs, millis);
     }