From 4eb4c95a86c8e87516d4fda7058986dc0c5dfea1 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Mon, 4 Jun 2012 20:48:06 -0600 Subject: [PATCH] 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. --- src/app/editor.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 4fe262de9..159591507 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -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)