From cd17cb6de32512eb009b863256125b960066e184 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Tue, 20 Mar 2012 10:31:03 -0700 Subject: [PATCH 1/2] removes file finder --- src/atom/file-finder.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/atom/file-finder.coffee b/src/atom/file-finder.coffee index a1f93d9cd..95130995d 100644 --- a/src/atom/file-finder.coffee +++ b/src/atom/file-finder.coffee @@ -18,8 +18,10 @@ class FileFinder extends View @maxResults = 10 @populateUrlList() window.keymap.bindKeys ".file-finder .editor", - 'enter': 'file-finder:select-file' + 'enter': 'file-finder:select-file', + 'escape': 'file-finder:close' + @on 'file-finder:close', => @remove() @on 'move-up', => @moveUp() @on 'move-down', => @moveDown() @on 'file-finder:select-file', => @select() From 99e3074c25739806ea96152615d6ea11dac5d9aa Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Tue, 20 Mar 2012 11:05:57 -0700 Subject: [PATCH 2/2] Previously focused element regains focus when file finder is removed --- spec/atom/file-finder-spec.coffee | 21 +++++++++++++++++++++ src/atom/file-finder.coffee | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/spec/atom/file-finder-spec.coffee b/spec/atom/file-finder-spec.coffee index 700ce227e..e0248b10b 100644 --- a/spec/atom/file-finder-spec.coffee +++ b/spec/atom/file-finder-spec.coffee @@ -1,5 +1,7 @@ FileFinder = require 'file-finder' +{$$} = require 'space-pen' + describe 'FileFinder', -> finder = null urls = null @@ -93,3 +95,22 @@ describe 'FileFinder', -> expect(finder.findMatches('ap')).toEqual ["app.coffee", "atom/app.coffee"] expect(finder.findMatches('a/ap')).toEqual ["atom/app.coffee"] + describe "when it is removed", -> + input = null + + beforeEach -> + input = $$ -> @input value : "this has focus" + input.attachToDom() + input.focus() + expect(document.activeElement).toBe input[0] + + finder = new FileFinder(urls: []) + finder.attachToDom() + expect(document.activeElement).not.toBe input[0] + + afterEach -> + input.remove() + + it "returns focus to previous active element", -> + finder.remove() + expect(document.activeElement).toBe input[0] diff --git a/src/atom/file-finder.coffee b/src/atom/file-finder.coffee index 95130995d..3779fde84 100644 --- a/src/atom/file-finder.coffee +++ b/src/atom/file-finder.coffee @@ -16,6 +16,8 @@ class FileFinder extends View initialize: ({@urls, @selected}) -> requireStylesheet 'file-finder.css' @maxResults = 10 + @previousFocusedElement = $(document.activeElement) + @populateUrlList() window.keymap.bindKeys ".file-finder .editor", 'enter': 'file-finder:select-file', @@ -45,6 +47,10 @@ class FileFinder extends View @selected(filePath) if filePath and @selected @remove() + remove: -> + super() + @previousFocusedElement.focus() + moveUp: -> @findSelectedLi() .filter(':not(:first-child)')