                     // not due to a touch interaction or animation)
                     if (!inTouchInteraction && (!snapElementAnimation || !snapElementAnimation.isPlaying))
                     {
-                        // If snapping is enabled, we need to ensure the scroll position is always 
-                        // an appropriately snapped value.
-                        if (scrollSnappingMode != ScrollSnappingMode.NONE && !settingScrollPosition)
+                        // We need to ensure the scroll position is always an appropriately snapped value.
+                        if (!settingScrollPosition)
                         {
                             settingScrollPosition = true;
                             viewport[event.property] = getSnappedPosition(Number(event.newValue), String(event.property));

    /**
     *  @private
     */
    private var _pullEnabled:Boolean = true;

    /**

            {
                // Go to the next horizontal page
                // Set the new page scroll position so the throw effect animates the page into place
                currentPageScrollPosition = Math.min(currentPageScrollPosition + viewport.width, maxHorizontalScrollPosition);
            }
            else if (velocityX > minVelocityPixels || viewport.horizontalScrollPosition <= currentPageScrollPosition - viewport.width * pageDragDistanceThreshold)
            {
                // Go to the previous horizontal page
                currentPageScrollPosition = Math.max(currentPageScrollPosition - viewport.width, minHorizontalScrollPosition);     
            }
            
            // Ensure the new page position is snapped appropriately 
