diff --git a/spec/extensions/autocomplete-spec.coffee b/spec/extensions/autocomplete-spec.coffee index 8b4001ebc..ffc2fcf65 100644 --- a/spec/extensions/autocomplete-spec.coffee +++ b/spec/extensions/autocomplete-spec.coffee @@ -307,10 +307,10 @@ describe "Autocomplete", -> expect(autocomplete.parent()).not.toExist() expect(editor.lineForBufferRow(10)).toEqual 'pivot ' - describe 'when the editor is focused', -> + describe 'when the mini-editor loses focus before the selection is confirmed', -> it "cancels the autocomplete", -> + editor.attachToDom() autocomplete.attach() - spyOn(autocomplete, "cancel") editor.focus() diff --git a/src/extensions/autocomplete.coffee b/src/extensions/autocomplete.coffee index 7cdd58fc6..d39d9dd14 100644 --- a/src/extensions/autocomplete.coffee +++ b/src/extensions/autocomplete.coffee @@ -82,6 +82,7 @@ class Autocomplete extends View @wordList = _.unique(@currentBuffer.getText().match(@wordRegex)) confirm: -> + @confirmed = true @editor.getSelection().clearSelection() @detach() return unless match = @selectedMatch() @@ -94,7 +95,8 @@ class Autocomplete extends View @editor.setSelectionBufferRange(@originalSelectionBufferRange) attach: -> - @editor.on 'focus.autocomplete', => @cancel() + @confirmed = false + @miniEditor.on 'focusout', => @cancel() unless @confirmed @originalSelectedText = @editor.getSelectedText() @originalSelectionBufferRange = @editor.getSelection().getBufferRange()