Fix Issue 347: three-finger zoom crashes the display on iOS
authorDan Vanderkam <danvdk@gmail.com>
Sat, 9 Feb 2013 00:39:14 +0000 (19:39 -0500)
committerDan Vanderkam <danvdk@gmail.com>
Sat, 9 Feb 2013 00:39:14 +0000 (19:39 -0500)
dygraph-interaction-model.js

index f29a52b..9afc3c1 100644 (file)
@@ -385,8 +385,9 @@ Dygraph.Interaction.startTouch = function(event, g, context) {
     // This is just a swipe.
     context.initialPinchCenter = touches[0];
     context.touchDirections = { x: true, y: true };
-  } else if (touches.length == 2) {
+  } else if (touches.length >= 2) {
     // It's become a pinch!
+    // In case there are 3+ touches, we ignore all but the "first" two.
 
     // only screen coordinates can be averaged (data coords could be log scale).
     context.initialPinchCenter = {
@@ -467,7 +468,7 @@ Dygraph.Interaction.moveTouch = function(event, g, context) {
   if (touches.length == 1) {
     xScale = 1.0;
     yScale = 1.0;
-  } else if (touches.length == 2) {
+  } else if (touches.length >= 2) {
     var initHalfWidth = (initialTouches[1].pageX - c_init.pageX);
     xScale = (touches[1].pageX - c_now.pageX) / initHalfWidth;