From d4057d21c7f99c4ecc8a7deac168d4d8c4e81bcc Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Fri, 13 Jun 2014 17:48:33 -0700 Subject: [PATCH] Pass the decoration hash into the gutterComponent --- src/editor-component.coffee | 8 +++++--- src/gutter-component.coffee | 12 +++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/editor-component.coffee b/src/editor-component.coffee index 09bbcda3e..bb73fcc52 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -52,6 +52,8 @@ EditorComponent = React.createClass cursorScreenRanges = @getCursorScreenRanges(renderedRowRange) selectionScreenRanges = @getSelectionScreenRanges(renderedRowRange) decorations = new Decorations(editor, renderedStartRow, renderedEndRow) + gutterDecorations = decorations.decorationsByScreenRowForType('gutter') + highlightDecorations = decorations.decorationsByMarkerIdForType('highlight') scrollHeight = editor.getScrollHeight() scrollWidth = editor.getScrollWidth() scrollTop = editor.getScrollTop() @@ -74,9 +76,9 @@ EditorComponent = React.createClass div className: className, style: {fontSize, lineHeight, fontFamily}, tabIndex: -1, GutterComponent { - ref: 'gutter', - decorations, editor, renderedRowRange, maxLineNumberDigits, scrollTop, - scrollHeight, lineHeightInPixels, @pendingChanges, mouseWheelScreenRow + ref: 'gutter', decorations: gutterDecorations, + editor, renderedRowRange, maxLineNumberDigits, + scrollTop, scrollHeight, lineHeightInPixels, @pendingChanges, mouseWheelScreenRow } div ref: 'scrollView', className: 'scroll-view', onMouseDown: @onMouseDown, diff --git a/src/gutter-component.coffee b/src/gutter-component.coffee index 618ff2d83..ffd359e7d 100644 --- a/src/gutter-component.coffee +++ b/src/gutter-component.coffee @@ -35,14 +35,14 @@ GutterComponent = React.createClass # visible row range. shouldComponentUpdate: (newProps) -> return true unless isEqualForProperties(newProps, @props, - 'renderedRowRange', 'scrollTop', 'lineHeightInPixels', 'mouseWheelScreenRow' + 'renderedRowRange', 'scrollTop', 'lineHeightInPixels', 'mouseWheelScreenRow'#, 'decorations' ) {renderedRowRange, pendingChanges, decorations} = newProps for change in pendingChanges when Math.abs(change.screenDelta) > 0 or Math.abs(change.bufferDelta) > 0 return true unless change.end <= renderedRowRange.start or renderedRowRange.end <= change.start - return true unless _.isEqual(@previousDecorations, decorations.decorationsByScreenRowForType('gutter')) + return true unless _.isEqual(@previousDecorations, decorations) false @@ -81,8 +81,6 @@ GutterComponent = React.createClass newLineNumbersHTML = null visibleLineNumberIds = new Set - decorationsByScreenRow = decorations.decorationsByScreenRowForType('gutter') - wrapCount = 0 for bufferRow, index in editor.bufferRowsForScreenRows(startRow, endRow - 1) screenRow = startRow + index @@ -97,12 +95,12 @@ GutterComponent = React.createClass visibleLineNumberIds.add(id) if @hasLineNumberNode(id) - @updateLineNumberNode(id, bufferRow, screenRow, wrapCount > 0, decorationsByScreenRow[screenRow]) + @updateLineNumberNode(id, bufferRow, screenRow, wrapCount > 0, decorations[screenRow]) else newLineNumberIds ?= [] newLineNumbersHTML ?= "" newLineNumberIds.push(id) - newLineNumbersHTML += @buildLineNumberHTML(bufferRow, wrapCount > 0, maxLineNumberDigits, screenRow, decorationsByScreenRow[screenRow]) + newLineNumbersHTML += @buildLineNumberHTML(bufferRow, wrapCount > 0, maxLineNumberDigits, screenRow, decorations[screenRow]) @screenRowsByLineNumberId[id] = screenRow @lineNumberIdsByScreenRow[screenRow] = id @@ -116,7 +114,7 @@ GutterComponent = React.createClass @lineNumberNodesById[lineNumberId] = lineNumberNode node.appendChild(lineNumberNode) - @previousDecorations = decorationsByScreenRow + @previousDecorations = decorations visibleLineNumberIds removeLineNumberNodes: (lineNumberIdsToPreserve) ->