| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -217,8 +217,13 @@ void ProcessGestureEvent(GestureEvent event) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    angle = CalculateAngle(initialDragPosition, endDragPosition, magnitude); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    intensity = magnitude / (float)draggingTimeCounter; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    currentGesture = GESTURE_DRAG; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    draggingTimeCounter++; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // Check if drag movement is less than minimum to keep it as hold state or switch to drag state | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    if(magnitude > FORCE_TO_SWIPE) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                        currentGesture = GESTURE_DRAG; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                        draggingTimeCounter++; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    else currentGesture = GESTURE_HOLD; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } break; | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -339,8 +344,13 @@ void UpdateGestures(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // NOTE: Gestures are processed through system callbacks on touch events | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if ((previousGesture == GESTURE_TAP) && (currentGesture == GESTURE_TAP)) currentGesture = GESTURE_HOLD; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    else if (currentGesture != GESTURE_HOLD) currentGesture = GESTURE_NONE; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // When screen is touched, in first frame GESTURE_TAP is called but in next frame touch event callback is not called (if touch position doesn't change), | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // so we need to store previous frame gesture type manually in this update function to switch to HOLD if current gesture is | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // GESTURE_TAP two frames in a row. Due to current gesture is set to HOLD, current gesture doesn't need to be reset to NONE every frame. | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // It will be reset when UP is called. | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if(currentGesture == GESTURE_TAP) previousGesture = currentGesture; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if(previousGesture == GESTURE_TAP && currentGesture == GESTURE_TAP) currentGesture = GESTURE_HOLD; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |