Put the timing code back in.
Occasionally gestures were fired twice. This helps prevent that. modified: plugin/leap/leap.js
This commit is contained in:
		| @@ -25,12 +25,14 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|       leapConfig  = Reveal.getConfig().leap, |       leapConfig  = Reveal.getConfig().leap, | ||||||
|       leapDOM     = document.createElement('div'), |       leapDOM     = document.createElement('div'), | ||||||
|       body        = document.body, |       body        = document.body, | ||||||
|  |       lastGesture = 0, | ||||||
|       config      = { |       config      = { | ||||||
|         naturalSwipe   : true, |         naturalSwipe   : true, | ||||||
|         pointerDefault : 15, |         pointerDefault : 15, | ||||||
|         pointerColor   : '#00aaff', |         pointerColor   : '#00aaff', | ||||||
|         pointerOpacity : 0.75 |         pointerOpacity : 0.75 | ||||||
|       }; |       }, | ||||||
|  |       now; | ||||||
|  |  | ||||||
|       // Merge user defined settings with defaults |       // Merge user defined settings with defaults | ||||||
|       if ( leapConfig ) { |       if ( leapConfig ) { | ||||||
| @@ -48,6 +50,12 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|       body.appendChild(leapDOM); |       body.appendChild(leapDOM); | ||||||
|  |  | ||||||
|   controller.on('frame', function (frame) { |   controller.on('frame', function (frame) { | ||||||
|  |     // Timing code to rate limit gesture execution | ||||||
|  |     now = new Date().getTime(); | ||||||
|  |  | ||||||
|  |     if( lastGesture === 0 ) { | ||||||
|  |       lastGesture = now; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Pointer code |     // Pointer code | ||||||
|     if ( frame.hands.length === 1 && frame.fingers.length === 1 ) { |     if ( frame.hands.length === 1 && frame.fingers.length === 1 ) { | ||||||
| @@ -73,13 +81,13 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|     } |     } | ||||||
|      |      | ||||||
|     // Gestures |     // Gestures | ||||||
|     if ( frame.gestures.length > 0 ) { |     if ( (now - lastGesture) > 500 && frame.gestures.length > 0 ) { | ||||||
|       var gesture = frame.gestures[0]; |       var gesture = frame.gestures[0]; | ||||||
|  |  | ||||||
|       // One hand gestures |       // One hand gestures | ||||||
|       if( frame.hands.length === 1 ) { |       if( frame.hands.length === 1 ) { | ||||||
|         // Swipe gestures. 2+ fingers. |         // Swipe gestures. 2+ fingers. | ||||||
|         if ( frame.fingers.length > 1 && gesture.speed > 1000 && gesture.state === 'start' && gesture.type === 'swipe' ) { |         if ( frame.fingers.length > 1 && gesture.speed > 1000 && gesture.type === 'swipe' ) { | ||||||
|           var x = gesture.direction[0], |           var x = gesture.direction[0], | ||||||
|               y = gesture.direction[1]; |               y = gesture.direction[1]; | ||||||
|  |  | ||||||
| @@ -90,6 +98,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|             } else { |             } else { | ||||||
|               config.naturalSwipe ? Reveal.right() : Reveal.left(); |               config.naturalSwipe ? Reveal.right() : Reveal.left(); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             lastGesture = now; | ||||||
|           // Up/down swipe gestures |           // Up/down swipe gestures | ||||||
|           } else { |           } else { | ||||||
|             if ( y > 0 ) { |             if ( y > 0 ) { | ||||||
| @@ -97,6 +107,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|             } else { |             } else { | ||||||
|               config.naturalSwipe ? Reveal.up() : Reveal.down(); |               config.naturalSwipe ? Reveal.up() : Reveal.down(); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             lastGesture = now; | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|         // Two hand gestures |         // Two hand gestures | ||||||
| @@ -105,6 +117,8 @@ var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)re | |||||||
|         if ( gesture.direction[1] > 0 ) { |         if ( gesture.direction[1] > 0 ) { | ||||||
|           Reveal.toggleOverview(); |           Reveal.toggleOverview(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         lastGesture = now; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }); |   }); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user