diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 1f6e442dd..fdb2387ae 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -251,6 +251,14 @@ AppSearchResultDisplay.prototype = { targetActor._delegate.setSelected(true); this.selectionIndex = index; return true; + }, + + activateSelected: function() { + if (this.selectionIndex < 0) + return; + let children = this._container.get_children(); + let targetActor = children[this.selectionIndex]; + this.provider.activateResult(targetActor._delegate.app.get_id()) } } diff --git a/js/ui/dash.js b/js/ui/dash.js index 81f63fd67..4082bcef7 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -432,6 +432,12 @@ OverflowSearchResults.prototype = { targetActor._delegate.setSelected(true); this.selectionIndex = index; return true; + }, + + activateSelected: function() { + let children = this.actor.get_children(); + let targetActor = children[this.selectionIndex]; + targetActor._delegate.activate(); } } @@ -597,9 +603,8 @@ SearchResults.prototype = { return; let meta = this._providerMeta[current]; let resultDisplay = meta.resultDisplay; - let children = resultDisplay.actor.get_children(); - let targetActor = children[resultDisplay.getSelectionIndex()]; - targetActor._delegate.activate(); + resultDisplay.activateSelected(); + Main.overview.hide(); } } diff --git a/js/ui/search.js b/js/ui/search.js index 2b738523c..c25e02ded 100644 --- a/js/ui/search.js +++ b/js/ui/search.js @@ -80,6 +80,13 @@ SearchResultDisplay.prototype = { */ selectIndex: function() { throw new Error("not implemented"); + }, + + /** + * Activate the currently selected search result. + */ + activateSelected: function() { + throw new Error("not implemented"); } };