     Point.fromObject(screenPosition)
 
   softWrapDescriptorForScreenRow: (row) ->
+    @computeSpatialScreenLinesThroughScreenRow(row)
     @spatialLineIterator.seekToScreenRow(row)
     {
       softWrappedAtStart: @spatialLineIterator.isSoftWrappedAtStart(),

      bufferRow += 1
      bufferColumn = 0
      screenColumn = 0
      screenLines.push({
        screenExtent: tokensScreenExtent,
        bufferExtent: traversal(Point(bufferRow, bufferColumn), screenLineBufferStart),
        tokens,

    bufferPosition = @buffer.clipPosition(bufferPosition, options)
    clipDirection = options?.clipDirection

    @computeSpatialScreenLinesThroughBufferRow(bufferPosition.row + 1)
    @spatialTokenIterator.seekToBufferPosition(bufferPosition)

    if @spatialTokenIterator.getMetadata() & SOFT_LINE_BREAK or @spatialTokenIterator.getMetadata() & SOFT_WRAP_INDENTATION
