From 32ef288c6efeca7ba00e78e04ed3e27893d8ceb0 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Wed, 9 Aug 2017 13:14:59 -0700 Subject: [PATCH] Fix selection unfocus input bug (Fixes #366) --- app/ui/components/codemirror/one-line-editor.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/ui/components/codemirror/one-line-editor.js b/app/ui/components/codemirror/one-line-editor.js index 72b7aed350..08f12acec2 100644 --- a/app/ui/components/codemirror/one-line-editor.js +++ b/app/ui/components/codemirror/one-line-editor.js @@ -82,18 +82,21 @@ class OneLineEditor extends PureComponent { } componentDidMount () { - document.body.addEventListener('click', this._handleDocumentClick); + document.body.addEventListener('mousedown', this._handleDocumentMousedown); } componentWillUnmount () { - document.body.removeEventListener('click', this._handleDocumentClick); + document.body.removeEventListener('mousedown', this._handleDocumentMousedown); } - _handleDocumentClick (e) { + _handleDocumentMousedown (e) { if (!this._editor) { return; } + // Clear the selection if mousedown happens outside the input so we act like + // a regular + // NOTE: Must be "mousedown", not "click" because "click" triggers on selection drags const node = ReactDOM.findDOMNode(this._editor); const clickWasOutsideOfComponent = !node.contains(e.target); if (clickWasOutsideOfComponent) {