From 624cf3cbd3b81e758d8974d5ccac4cd3358bbe86 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 7 Jun 2012 15:41:35 -0600 Subject: [PATCH] EditSession informs cursor models of buffer changes (instead of Editor informing cursor views) --- src/app/cursor-view.coffee | 4 ---- src/app/edit-session.coffee | 7 +++++++ src/app/editor.coffee | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/cursor-view.coffee b/src/app/cursor-view.coffee index 91bfa54a2..db9e691ee 100644 --- a/src/app/cursor-view.coffee +++ b/src/app/cursor-view.coffee @@ -26,10 +26,6 @@ class CursorView extends View @updateAppearance() @editor.syncCursorAnimations() - handleBufferChange: (e) -> - @cursor.handleBufferChange(e) - @trigger 'cursor-move', bufferChange: true - remove: -> @editor.compositeCursor.removeCursor(this) @editor.compositeSelection.removeSelectionForCursor(this) diff --git a/src/app/edit-session.coffee b/src/app/edit-session.coffee index 4d4ad943c..3875e5c29 100644 --- a/src/app/edit-session.coffee +++ b/src/app/edit-session.coffee @@ -7,6 +7,8 @@ _ = require 'underscore' module.exports = class EditSession + @idCounter: 1 + @deserialize: (state, editor, rootView) -> buffer = Buffer.deserialize(state.buffer, rootView.project) session = new EditSession(editor, buffer) @@ -21,12 +23,17 @@ class EditSession cursors: null constructor: (@editor, @buffer) -> + @id = @constructor.idCounter++ @renderer = new Renderer(@buffer, { softWrapColumn: @editor.calcSoftWrapColumn(), tabText: @editor.tabText }) @cursors = [] @addCursorAtScreenPosition([0, 0]) + @buffer.on "change.edit-session-#{@id}", (e) => + @moveCursors (cursor) -> cursor.handleBufferChange(e) + destroy: -> @renderer.destroy() + @buffer.off ".edit-session-#{@id}" serialize: -> buffer: @buffer.serialize() diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 3a71b08a7..0a52f373e 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -452,7 +452,6 @@ class Editor extends View Math.ceil((@scrollTop() + @scrollView.height()) / @lineHeight) - 1 handleBufferChange: (e) -> - @compositeCursor.handleBufferChange(e) @compositeSelection.handleBufferChange(e) handleRendererChange: (e) ->