From 6acbbb3a5c6002dc6136750be1be1a62ca11ea8b Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 23 Mar 2016 17:20:08 +0100 Subject: [PATCH] Improve DisplayLayer management --- src/display-buffer.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/display-buffer.coffee b/src/display-buffer.coffee index b10ffb0c4..b17600226 100644 --- a/src/display-buffer.coffee +++ b/src/display-buffer.coffee @@ -30,6 +30,7 @@ class DisplayBuffer extends Model @deserialize: (state, atomEnvironment) -> state.tokenizedBuffer = TokenizedBuffer.deserialize(state.tokenizedBuffer, atomEnvironment) + state.displayLayer = state.tokenizedBuffer.buffer.getDisplayLayer(state.displayLayerId) state.config = atomEnvironment.config state.assert = atomEnvironment.assert state.grammarRegistry = atomEnvironment.grammars @@ -41,7 +42,7 @@ class DisplayBuffer extends Model { tabLength, @editorWidthInChars, @tokenizedBuffer, buffer, @ignoreInvisibles, - @largeFileMode, @config, @assert, @grammarRegistry, @packageManager + @largeFileMode, @config, @assert, @grammarRegistry, @packageManager, @displayLayer } = params @emitter = new Emitter @@ -52,7 +53,7 @@ class DisplayBuffer extends Model @grammarRegistry, @packageManager, @assert }) @buffer = @tokenizedBuffer.buffer - @displayLayer ?= @buffer.getDisplayLayer() ? @buffer.addDisplayLayer() + @displayLayer ?= @buffer.addDisplayLayer() @displayLayer.setTextDecorationLayer(@tokenizedBuffer) @charWidthsByScope = {} @defaultMarkerLayer = @displayLayer.addMarkerLayer() @@ -92,11 +93,12 @@ class DisplayBuffer extends Model editorWidthInChars: @editorWidthInChars tokenizedBuffer: @tokenizedBuffer.serialize() largeFileMode: @largeFileMode + displayLayerId: @displayLayer.id copy: -> new DisplayBuffer({ @buffer, tabLength: @getTabLength(), @largeFileMode, @config, @assert, - @grammarRegistry, @packageManager, displayLayer: @displayLayer.copy() + @grammarRegistry, @packageManager, displayLayer: @buffer.copyDisplayLayer(@displayLayer.id) }) resetDisplayLayer: ->