diff --git a/src/input-component.coffee b/src/input-component.coffee index cacf16266..776be6c14 100644 --- a/src/input-component.coffee +++ b/src/input-component.coffee @@ -18,8 +18,6 @@ InputComponent = React.createClass node = @getDOMNode() node.addEventListener 'paste', @onPaste node.addEventListener 'compositionupdate', @onCompositionUpdate - node.addEventListener 'focus', @onFocus - node.addEventListener 'blur', @onBlur # Don't let text accumulate in the input forever, but avoid excessive reflows componentDidUpdate: -> @@ -37,11 +35,5 @@ InputComponent = React.createClass onPaste: (e) -> e.preventDefault() - onFocus: -> - @props.onFocus?() - - onBlur: -> - @props.onBlur?() - focus: -> @getDOMNode().focus() diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index 53c674713..022f5fbd5 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -107,8 +107,6 @@ TextEditorComponent = React.createClass ref: 'input' className: 'hidden-input' style: hiddenInputStyle - onFocus: @onInputFocused - onBlur: @onInputBlurred LinesComponent { ref: 'lines', @@ -378,7 +376,6 @@ TextEditorComponent = React.createClass listenForDOMEvents: -> node = @getDOMNode() node.addEventListener 'mousewheel', @onMouseWheel - node.addEventListener 'focus', @onFocus # For some reason, React's built in focus events seem to bubble node.addEventListener 'textInput', @onTextInput @refs.scrollView.getDOMNode().addEventListener 'mousedown', @onMouseDown @@ -432,8 +429,13 @@ TextEditorComponent = React.createClass subscriptions.add atom.config.observe scopeDescriptor, 'editor.showLineNumbers', @setShowLineNumbers subscriptions.add atom.config.observe scopeDescriptor, 'editor.scrollSensitivity', @setScrollSensitivity - onFocus: -> - @refs.input.focus() if @isMounted() + focused: -> + if @isMounted() + @setState(focused: true) + @refs.input.focus() + + blurred: -> + @setState(focused: false) onTextInput: (event) -> event.stopPropagation() @@ -456,12 +458,6 @@ TextEditorComponent = React.createClass inputNode.value = event.data if editor.insertText(event.data) - onInputFocused: -> - @setState(focused: true) - - onInputBlurred: -> - @setState(focused: false) - onVerticalScroll: (scrollTop) -> {editor} = @props diff --git a/src/text-editor-element.coffee b/src/text-editor-element.coffee index 7bfb89e67..da9913944 100644 --- a/src/text-editor-element.coffee +++ b/src/text-editor-element.coffee @@ -91,7 +91,7 @@ class TextEditorElement extends HTMLElement focused: -> if @component? - @component.onFocus() + @component.focused() else @focusOnAttach = true @@ -99,6 +99,7 @@ class TextEditorElement extends HTMLElement event.stopImmediatePropagation() if @contains(event.relatedTarget) blurred: (event) -> + @component.blurred() event.stopImmediatePropagation() if @contains(event.relatedTarget) addGrammarScopeAttribute: ->