             
             selectionAnchorIndexChanged = false;
             selectionActiveIndexChanged = false;
+        }
+
+        if (horizontalScrollPositionChanged)
+        {
+            textFlow.controller.horizontalScrollPosition =
+                _horizontalScrollPosition;
+            horizontalScrollPositionChanged = false;
+        }
+
+        if (verticalScrollPositionChanged)
+        {
+            textFlow.controller.verticalScrollPosition =
+                _verticalScrollPosition;
+            verticalScrollPositionChanged = false;
         }
     }
 

import text.elements.ParagraphElement;
import text.elements.SpanElement;
import text.elements.TextFlow;
import text.formats.BlockProgression;
import text.formats.CharacterFormat;
import text.formats.ContainerFormat;

        invalidateDisplayList();
    }
    
    //----------------------------------
    //  verticalScrollPosition
    //----------------------------------

    /**
     *  @private
     */
    private var _verticalScrollPosition:Number = 0;

    /**
     *  @private
     */
    private var verticalScrollPositionChanged:Boolean = false;
 
    /**
     *  Documentation is not currently available.
     */
    public function get verticalScrollPosition():Number
    {
        return _verticalScrollPosition;
    }

    /**
     *  @private
     */
    public function set verticalScrollPosition(value:Number):void
    {
        if (value == _verticalScrollPosition)
            return;

        _verticalScrollPosition = value;
        verticalScrollPositionChanged = true;

        invalidateProperties();
    }
        
    //----------------------------------
    //  widthInChars
    //----------------------------------
