 
   restoreScrollTopIfNeeded: ->
     unless @scrollTop?
-      @updateScrollTop(@model.getFirstVisibleScreenRow() * @lineHeight)
+      @updateScrollTop(@linesYardstick.topPixelPositionForRow(@model.getFirstVisibleScreenRow()))
 
   restoreScrollLeftIfNeeded: ->
     unless @scrollLeft?


    verticalScrollMarginInPixels = @getVerticalScrollMarginInPixels()

    top = screenRange.start.row * @lineHeight
    bottom = (screenRange.end.row + 1) * @lineHeight

    if options?.center
      desiredScrollCenter = (top + bottom) / 2

      screenRange.end.column = 0

  repositionRegionWithinTile: (region, tileStartRow) ->
    region.top  += @scrollTop - @linesYardstick.topPixelPositionForRow(tileStartRow)
    region.left += @scrollLeft

  buildHighlightRegions: (screenRange) ->
