     
     /**
      *  @private
+     *  The delta coordinates of the most recent mouse event during a drag gesture
+     */
+    private var mostRecentDragDeltaX:Number;
+    private var mostRecentDragDeltaY:Number;
+    
+    /**
+     *  @private
+     *  Timer used to do drag scrolling.
+     */
+    private var dragTimer:Timer = null;
+    
+    /**
+     *  @private
+     *  Indicates that the mouse coordinates have changed and the 
+     *  next dragTimer invokation needs to do a scroll.
+     */
+    private var dragScrollPending:Boolean = false;
+    
+    /**
+     *  @private
      *  The time the scroll started
      */
     private var startTime:Number;

     */
    private function sbRoot_mouseMoveHandler(event:MouseEvent):void
    {
        var mouseDownedDifference:Point = addMouseEventHistory(event);
        
        if (!isScrolling)
        {

import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.events.TouchEvent;
import flash.geom.Point;
import flash.utils.Timer;

import mx.core.mx_internal;
import mx.events.SandboxMouseEvent;
