context.initialTouches = touches;
if (touches.length == 1) {
- // This is just a swipe.
+ // This is possbily a touchOVER, save the last touch to check
+ context.lastTouch = event;
+ // or This is just a swipe.
context.initialPinchCenter = touches[0];
context.touchDirections = { x: true, y: true };
} else if (touches.length >= 2) {
DygraphInteraction.moveTouch = function(event, g, context) {
// If the tap moves, then it's definitely not part of a double-tap.
context.startTimeForDoubleTapMs = null;
+
+ // clear the last touch if it's doing something else
+ context.lastTouch = null;
var i, touches = [];
for (i = 0; i < event.touches.length; i++) {
context.doubleTapY && Math.abs(context.doubleTapY - t.screenY) < 50) {
g.resetZoom();
} else {
+
+ if (context.lastTouch !== null){
+ // no double-tap, pan or pinch so it's a touchOVER
+ event.isTouchOver = true;
+ g.mouseMove(event);
+ }
+
context.startTimeForDoubleTapMs = now;
context.doubleTapX = t.screenX;
context.doubleTapY = t.screenY;
* @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;
};
* @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;
};