     
     
     // MARK: - Gestures
+    lazy var presentationGesture: UIPanGestureRecognizer = {
+        let gesture = UIPanGestureRecognizer.init(target: self, action: #selector(WMFTableOfContentsAnimator.handlePresentationGesture(_:)))
+        gesture.maximumNumberOfTouches = 1
+        gesture.delegate = self
+        return gesture
+    }()
     
     var dismissalGesture: UIPanGestureRecognizer?
     

import UIKit

// MARK: - Delegate

                return false
            }
            
        }else if gestureRecognizer == self.presentationGesture {
            
            let translation = self.presentationGesture.translationInView(presentationGesture.view)
            let location = self.presentationGesture.locationInView(presentationGesture.view)
            let gestureWidth = presentationGesture.view!.frame.width * gesturePercentage
            let maxLocation = UIApplication.sharedApplication().wmf_tocShouldBeOnLeft ? gestureWidth: presentationGesture.view!.frame.maxX - gestureWidth
            let isInStartBoundry = UIApplication.sharedApplication().wmf_tocShouldBeOnLeft ? maxLocation - location.x > 0 : location.x - maxLocation > 0
            if(translation.x * UIApplication.sharedApplication().wmf_tocRTLMultiplier < 0) && isInStartBoundry{
                return true
            }else{
                return false
            }
        }else{
            return true
        }
        
        
    }
}
