diff --git a/src/editor-scroll-view-component.coffee b/src/editor-scroll-view-component.coffee index 817980189..02e37b388 100644 --- a/src/editor-scroll-view-component.coffee +++ b/src/editor-scroll-view-component.coffee @@ -40,7 +40,7 @@ EditorScrollViewComponent = React.createClass selectionChanged } div className: 'underlayer', - SelectionBackgroundsComponent({editor, scrollTop, scrollLeft}) + SelectionBackgroundsComponent({editor, lineHeight, scrollTop}) componentDidMount: -> @getDOMNode().addEventListener 'overflowchanged', @onOverflowChanged diff --git a/src/selection-backgrounds-component.coffee b/src/selection-backgrounds-component.coffee index 62152cc09..993007184 100644 --- a/src/selection-backgrounds-component.coffee +++ b/src/selection-backgrounds-component.coffee @@ -6,13 +6,19 @@ SelectionBackgroundsComponent = React.createClass displayName: 'SelectionBackgroundsComponent' render: -> - {editor, scrollTop} = @props + {editor, lineHeight, scrollTop} = @props div className: 'selections', if @isMounted() for selection in editor.getSelections() - if backgroundRect = selection.getBackgroundRect() - {top, left, right, height} = backgroundRect - WebkitTransform = "translate3d(0px, #{top - scrollTop}px, 0px)" - div className: 'selection', key: selection.id, - div className: 'region', style: {left, right, height, WebkitTransform} + {start, end} = selection.getScreenRange() + continue if start.row is end.row + + height = (end.row - start.row) * lineHeight + top = (start.row * lineHeight) - scrollTop + left = 0 + right = 0 + WebkitTransform = "translate3d(0px, #{top}px, 0px)" + + div className: 'selection', key: selection.id, + div className: 'region', style: {left, right, height, WebkitTransform} diff --git a/src/selection.coffee b/src/selection.coffee index d02eded36..5d70d9406 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -591,17 +591,6 @@ class Selection extends Model compare: (otherSelection) -> @getBufferRange().compare(otherSelection.getBufferRange()) - getBackgroundRect: -> - {start, end} = @getScreenRange() - return if start.row is end.row - - lineHeight = @editor.getLineHeight() - height = (end.row - start.row) * lineHeight - top = start.row * lineHeight - left = 0 - right = 0 - {top, left, right, height} - screenRangeChanged: -> screenRange = @getScreenRange() @emit 'screen-range-changed', screenRange