 
     @updateContentDimensions()
     @updateScrollbarDimensions()
-    @updateScrollPosition()
+
+    @restoreScrollPosition()
+    @commitPendingLogicalScrollTopPosition()
+    @commitPendingScrollTopPosition()
+    @commitPendingLogicalScrollLeftPosition()
+    @commitPendingScrollLeftPosition()
+    @clearPendingScrollPosition()
+
     @updateStartRow()
     @updateEndRow()
     @updateCommonGutterState()

      @contentFrameWidth - @verticalScrollbarWidth

  getScrollBottom: -> @getScrollTop() + @getClientHeight()
  setScrollBottom: (scrollBottom) ->
    @setScrollTop(scrollBottom - @getClientHeight())
    @getScrollBottom()

  getScrollRight: -> @getScrollLeft() + @getClientWidth()
  setScrollRight: (scrollRight) ->
    @setScrollLeft(scrollRight - @getClientWidth())
    @getScrollRight()

  getScrollHeight: ->


    @emitDidUpdateState()

  setScrollLeft: (scrollLeft, overrideScroll=true) ->
    return unless scrollLeft?

    @pendingScrollLogicalPosition = null if overrideScroll
    @pendingScrollLeft = scrollLeft

    @shouldUpdateHorizontalScrollState = true
