diff --git a/src/cursor-component.coffee b/src/cursor-component.coffee index cbf24bbdc..fcc6c2022 100644 --- a/src/cursor-component.coffee +++ b/src/cursor-component.coffee @@ -1,11 +1,9 @@ React = require 'react' {div} = require 'reactionary' -SubscriberMixin = require './subscriber-mixin' module.exports = CursorComponent = React.createClass displayName: 'CursorComponent' - mixins: [SubscriberMixin] render: -> {top, left, height, width} = @props.cursor.getPixelRect() @@ -13,9 +11,3 @@ CursorComponent = React.createClass className += ' blink-off' if @props.blinkOff div className: className, style: {top, left, height, width} - - componentDidMount: -> - @subscribe @props.cursor, 'moved', => @forceUpdate() - - componentWillUnmount: -> - @unsubscribe() diff --git a/src/editor-component.coffee b/src/editor-component.coffee index 992e6c773..eda7315d2 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -75,6 +75,7 @@ EditorCompont = React.createClass observeEditor: -> {editor} = @props @subscribe editor, 'screen-lines-changed', @onScreenLinesChanged + @subscribe editor, 'selection-screen-range-changed', @requestUpdate @subscribe editor, 'selection-added', @onSelectionAdded @subscribe editor, 'selection-removed', @onSelectionAdded @subscribe editor.$scrollTop.changes, @requestUpdate diff --git a/src/editor.coffee b/src/editor.coffee index 3fc49d0a3..09dedff86 100644 --- a/src/editor.coffee +++ b/src/editor.coffee @@ -1246,6 +1246,9 @@ class Editor extends Model else false + selectionScreenRangeChanged: (selection) -> + @emit 'selection-screen-range-changed', selection + # Public: Get current {Selection}s. # # Returns: An {Array} of {Selection}s. diff --git a/src/selection-component.coffee b/src/selection-component.coffee index 42a592f58..e3dd22e3a 100644 --- a/src/selection-component.coffee +++ b/src/selection-component.coffee @@ -1,19 +1,11 @@ React = require 'react' {div} = require 'reactionary' -SubscriberMixin = require './subscriber-mixin' module.exports = SelectionComponent = React.createClass displayName: 'SelectionComponent' - mixins: [SubscriberMixin] render: -> div className: 'selection', for regionRect, i in @props.selection.getRegionRects() div className: 'region', key: i, style: regionRect - - componentDidMount: -> - @subscribe @props.selection, 'screen-range-changed', => @forceUpdate() - - componentWillUnmount: -> - @unsubscribe() diff --git a/src/selection.coffee b/src/selection.coffee index 7fccda264..30694deed 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -613,3 +613,4 @@ class Selection extends Model screenRangeChanged: -> screenRange = @getScreenRange() @emit 'screen-range-changed', screenRange + @editor.selectionScreenRangeChanged(this)