[gnome-shell] viewSelector: Open context for highlighted search result
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] viewSelector: Open context for highlighted search result
- Date: Thu, 17 Aug 2017 14:59:10 +0000 (UTC)
commit 093b73b616bcbab2cf57bccf67a525a50c739708
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Aug 16 01:25:15 2017 +0200
viewSelector: Open context for highlighted search result
To make search more efficient, users don't need to move the actual
keyboard focus away from the search entry to activate the first
result. However the shift+f10 shortcut to pop up the context menu
via keyboard still acts on the actually focused widget, which is
the entry. It makes more sense to open the context menu of the
selected result instead, as that's what's highlighted and responds
to keyboard activation.
https://bugzilla.gnome.org/show_bug.cgi?id=675315
js/ui/search.js | 9 +++++++++
js/ui/viewSelector.js | 7 +++++++
2 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/search.js b/js/ui/search.js
index c399880..30e2b30 100644
--- a/js/ui/search.js
+++ b/js/ui/search.js
@@ -681,6 +681,15 @@ var SearchResults = new Lang.Class({
this._setSelected(this._defaultResult, highlight);
},
+ popupMenuDefault: function() {
+ // If we have a search queued up, force the search now.
+ if (this._searchTimeoutId > 0)
+ this._doSearch();
+
+ if (this._defaultResult)
+ this._defaultResult.actor.popup_menu();
+ },
+
navigateFocus: function(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
if (direction == Gtk.DirectionType.TAB_BACKWARD ||
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index ba7f46c..7131f77 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -163,6 +163,13 @@ var ViewSelector = new Lang.Class({
this._text.connect('key-focus-out', Lang.bind(this, function() {
this._searchResults.highlightDefault(false);
}));
+ this._entry.connect('popup-menu', () => {
+ if (!this._searchActive)
+ return;
+
+ this._entry.menu.close();
+ this._searchResults.popupMenuDefault();
+ });
this._entry.connect('notify::mapped', Lang.bind(this, this._onMapped));
global.stage.connect('notify::key-focus', Lang.bind(this, this._onStageKeyFocusChanged));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]