 import spark.core.NavigationUnit;
 import spark.events.IndexChangeEvent;
 import spark.events.RendererExistenceEvent;
+import spark.events.TouchScrollEvent;
 import spark.layouts.supportClasses.DropLocation;
 
 use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal

        {
            systemManager.getSandboxRoot().addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, mouseUpHandler, false, 0, true);
            systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, false, 0, true);
        }
    }


        }
    }
    
    private var mouseDownCancelledFromScroll:Boolean = false;
    
    private function removeMouseHandlersForDragStart():void
    {
        // If dragging failed, but we had a pending selection, commit it here
        if (pendingSelectionOnMouseUp && !DragManager.isDragging && !mouseDownCancelledFromScroll)
        {
            if (allowMultipleSelection)
            {
                setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
            }
            else if (getStyle("inputMode") == "touch" && selectedIndex == NO_SELECTION)
            {
                setSelectedIndex(mouseDownIndex, true);
            }
            else
            {
