From be354f78a6c5c3bb6ccb76955ee2b79517c80bda Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 24 Jun 2013 16:46:36 -0700 Subject: [PATCH] Focus root view if previously focused element is no longer attached This can be the case when a select list is triggered while a different select list is already open and so the second list to open has no element to restore focus to when it closes. --- src/app/select-list.coffee | 5 ++++- src/packages/go-to-line/lib/go-to-line-view.coffee | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/select-list.coffee b/src/app/select-list.coffee index 6d1c3bae7..17be0147b 100644 --- a/src/app/select-list.coffee +++ b/src/app/select-list.coffee @@ -151,7 +151,10 @@ class SelectList extends View @previouslyFocusedElement = $(':focus') restoreFocus: -> - @previouslyFocusedElement?.focus() + if @previouslyFocusedElement?.isOnDom() + @previouslyFocusedElement.focus() + else + rootView.focus() cancelled: -> @miniEditor.setText('') diff --git a/src/packages/go-to-line/lib/go-to-line-view.coffee b/src/packages/go-to-line/lib/go-to-line-view.coffee index 28152c8a8..948924d62 100644 --- a/src/packages/go-to-line/lib/go-to-line-view.coffee +++ b/src/packages/go-to-line/lib/go-to-line-view.coffee @@ -36,6 +36,11 @@ class GoToLineView extends View @detaching = true @miniEditor.setText('') + if @previouslyFocusedElement?.isOnDom() + @previouslyFocusedElement.focus() + else + rootView.focus() + super @detaching = false