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

      screenRange.end.column = 0

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

  buildHighlightRegions: (screenRange) ->


      continue unless @gutterIsVisible(gutter)
      for decorationId, {properties, screenRange} of @customGutterDecorationsByGutterName[gutterName]
        top = @linesYardstick.topPixelPositionForRow(screenRange.start.row)
        bottom = @linesYardstick.topPixelPositionForRow(screenRange.end.row + 1)
        @customGutterDecorations[gutterName][decorationId] =
          top: top
          height: bottom - top
          item: properties.item
          class: properties.class

