Constrain the end of the old screen range to the lastRenderedScreenRow, not maxScreenRow

Constraining the end of the new range max screen row instead of the last rendered row is what allows the buffer to get longer when the last rendered screen row is smaller than the last visible screen row. But constraining the end of the old range to this was causing artifacts. The old range should always be constrained to what is rendered on screen now, not what "could be". What "could be" is the domain of the new range.
This commit is contained in:
Nathan Sobo
2012-06-04 20:48:06 -06:00
parent de1086639d
commit 4eb4c95a86

View File

@@ -466,9 +466,9 @@ class Editor extends View
oldScreenRange.end.row += delta
newScreenRange.start.row = Math.max(newScreenRange.start.row, @firstRenderedScreenRow)
oldScreenRange.end.row = Math.min(oldScreenRange.end.row, @lastRenderedScreenRow)
oldScreenRange.start.row = Math.max(oldScreenRange.start.row, @firstRenderedScreenRow)
newScreenRange.end.row = Math.min(newScreenRange.end.row, maxEndRow)
oldScreenRange.end.row = Math.min(oldScreenRange.end.row, maxEndRow)
lineElements = @buildLineElements(newScreenRange.start.row, newScreenRange.end.row)
@replaceLineElements(oldScreenRange.start.row, oldScreenRange.end.row, lineElements)