   gestureEnd: (e)->
     log
       gestureEnd: @getMainCoordinate e.location
-    @scrollPosition = bound 0, @getScrollPosition(true), @_maxScrollPosition
+    switch @getTracking true
+      when "start"
+        @scrollPosition = bound -@_maxScrollPosition, @getScrollPosition(true), 0
+      when "end"
+        @scrollPosition = bound 0, @getScrollPosition(true), @_maxScrollPosition
     # @_gestureActive = false
     # if absGt @_flickSpeed, minimumFlickVelocity
     #   scrollAnimator = @getScrollAnimator()

    focusedParentAxis:  default: point0

    track:              default: "start"
    currentlyTracking:  default: null

    scrollPosition:     default: 0


          _focusedChild.getCurrentLocationY true, _focusedChildAxis
        offset = _scrollPos - currentPos
      else
        switch @_pendingState._tracking ||= @_pendingState._track
          when "start"
            _scrollPosition
          when "end"
