From cf4e87103ea39677245bb1165b41b5fe51102a4e Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 15 Nov 2012 12:13:59 -0700 Subject: [PATCH] Emit row-oriented screen lien change events from `EditSession` --- src/app/edit-session.coffee | 11 ++++++++++- src/app/editor.coffee | 12 ++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/app/edit-session.coffee b/src/app/edit-session.coffee index 066765ff8..31f24307e 100644 --- a/src/app/edit-session.coffee +++ b/src/app/edit-session.coffee @@ -61,7 +61,16 @@ class EditSession @displayBuffer.on "change.edit-session-#{@id}", (e) => @refreshAnchorScreenPositions() unless e.bufferChange - @trigger 'screen-lines-change', e + + { oldRange, newRange } = e + start = oldRange.start.row + end = oldRange.end.row + screenDelta = newRange.end.row - oldRange.end.row + + if bufferChange = e.bufferChange + bufferDelta = bufferChange.newRange.end.row - bufferChange.oldRange.end.row + + @trigger 'screen-lines-change', {start, end, screenDelta, bufferDelta} destroy: -> throw new Error("Edit session already destroyed") if @destroyed diff --git a/src/app/editor.coffee b/src/app/editor.coffee index ba410f5d0..adb2592fa 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -896,16 +896,8 @@ class Editor extends View getLastVisibleScreenRow: -> Math.max(0, Math.ceil((@scrollTop() + @scrollView.height()) / @lineHeight) - 1) - handleScreenLinesChange: (e) -> - { oldRange, newRange } = e - start = oldRange.start.row - end = oldRange.end.row - screenDelta = newRange.end.row - oldRange.end.row - - if bufferChange = e.bufferChange - bufferDelta = bufferChange.newRange.end.row - bufferChange.oldRange.end.row - - @pendingChanges.push({start, end, screenDelta, bufferDelta}) + handleScreenLinesChange: (change) -> + @pendingChanges.push(change) @requestDisplayUpdate() buildLineElementForScreenRow: (screenRow) ->