Fix a bug in handling touch events.
authorKim Nguyễn <kn@lri.fr>
Fri, 11 Oct 2013 14:55:08 +0000 (16:55 +0200)
committerKim Nguyễn <kn@lri.fr>
Fri, 11 Oct 2013 14:55:08 +0000 (16:55 +0200)
Tentatively capture 2 finger tapping to display the menu.

simpleWebSlides.js

index 89dea31..2dc6975 100644 (file)
@@ -491,21 +491,26 @@ SWS.Presentation = new function () {
     }
 
 
-    var xstart = 0;
+    var _xstart = 0;
     self.inputHandler = function (event) {
         if (_disable_input_events || _print_mode) return;
         var code = 0;
         switch (event.type) {
         case 'touchstart':
-            xstart = event.changedTouches[0].clientX;
+            _xstart = event.changedTouches[0].clientX;
             return;
         case 'touchend':
-            var dist = event.changedTouches[0].clientX - xstart;
+
+            var dist = event.changedTouches[0].clientX - _xstart;
             if (dist > 20) code = 39
             else if (dist < -20) code = 37
-            else code = 67;
+            else if (even.changedTouches.length > 1) code = 67;
+            break;
         case 'keydown':
             code = event.which;
+            break;
+        default:
+            return;
         };
         switch (code) {
         case 36:/* Home */
@@ -794,8 +799,8 @@ SWS.Presentation = new function () {
                 else
                     self.refresh();
                 $(document).keydown(self.inputHandler);
-                $(document).on('touchstart', self.inputHandler);
-                $(document).on('touchend', self.inputHandler);
+                document.body.addEventListener('touchstart',self.inputHandler, false);
+                document.body.addEventListener('touchend',self.inputHandler, false);
 
                 _initialized = true;
             };