     @_touchStarted = @_inTrans = false
     @_stageHolder.style.cursor = css.grab
     # Enable tweening again.
-    @_setTweening @settings.speed
+    @_setTrans @_settings.speed, 0
     # Pass callback final value.
     @_settings.touchEndCallback @["_#{ @_touchAxis }Last"]
 

    # Change the cursor to the active `grabbing` state.
    @_stageHolder.style.cursor = css.grabbing
    # Disable tweening to enable instant 1 to 1 movement.
    @_setTweening 0
    # Derive the axis to fold on.
    @_touchAxis = if @_lastOp.anchor in anchorListV then 'x' else 'y'
    # Set a reference to the last folded angle to accurately derive deltas.

      angle


  # Allows other methods to change the transiton duration/delay or disable it altogether.
  _setTrans: (duration, delay) ->
    @_iterate @_lastOp.anchor, (panel, i, len) => @_setPanelTrans arguments..., duration, delay


  _setPanelTrans: (panel, i, len, duration, delay) ->
    delayMs = do =>
      switch delay
        when 0 then 0
        when 1 then @_settings.speed / len * (len - i - 1)
        when 2 then @_settings.speed / len * i

    panel.style[css.transitionDuration] = duration + 'ms'
    panel.style[css.transitionDelay]    = delayMs  + 'ms'
    if @_shading
      for side in (if anchor in anchorListV then anchorListV else anchorListH)
        @_shaders[anchor][side][i].style[css.transitionDuration] = duration + 'ms'
        @_shaders[anchor][side][i].style[css.transitionDelay]    = delayMs  + 'ms'

    delayMs


  # `_setShader` determines a shader's opacity based upon panel position, anchor, and angle.
