From 346c7d9b372d79f0b29c493c800b90d091bbbb7e Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 15 Sep 2015 17:44:31 +0200 Subject: [PATCH] Defer state building in TextEditorPresenter --- src/text-editor-presenter.coffee | 47 ++++++++++++-------------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index ca7aadf3b..05b8a636b 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -34,6 +34,7 @@ class TextEditorPresenter @observeModel() @observeConfig() @buildState() + @invalidate() @startBlinkingCursors() if @focused @updating = false @@ -112,6 +113,23 @@ class TextEditorPresenter @shouldUpdateGutterOrderState = false @shouldUpdateCustomGutterDecorationState = false + invalidate: -> + @shouldUpdateFocusedState = true + @shouldUpdateHeightState = true + @shouldUpdateVerticalScrollState = true + @shouldUpdateHorizontalScrollState = true + @shouldUpdateScrollbarsState = true + @shouldUpdateHiddenInputState = true + @shouldUpdateContentState = true + @shouldUpdateDecorations = true + @shouldUpdateLinesState = true + @shouldUpdateCursorsState = true + @shouldUpdateOverlaysState = true + @shouldUpdateLineNumberGutterState = true + @shouldUpdateLineNumbersState = true + @shouldUpdateGutterOrderState = true + @shouldUpdateCustomGutterDecorationState = true + observeModel: -> @disposables.add @model.onDidChange => @updateVerticalDimensions() @@ -227,35 +245,6 @@ class TextEditorPresenter @lineNumberGutter = tiles: {} - @updateState() - - updateState: -> - @shouldUpdateLinesState = true - @shouldUpdateLineNumbersState = true - - @updateContentDimensions() - @updateScrollbarDimensions() - @updateStartRow() - @updateEndRow() - - @updateFocusedState() - @updateHeightState() - @updateVerticalScrollState() - @updateHorizontalScrollState() - @updateScrollbarsState() - @updateHiddenInputState() - @updateContentState() - @updateDecorations() - @updateTilesState() - @updateCursorsState() - @updateOverlaysState() - @updateLineNumberGutterState() - @updateCommonGutterState() - @updateGutterOrderState() - @updateCustomGutterDecorationState() - - @resetTrackedUpdates() - updateFocusedState: -> @state.focused = @focused