[gnome-shell/wip/app-system-rewrite: 2/13] appDisplay: Use a proper string key for the app search provider
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/app-system-rewrite: 2/13] appDisplay: Use a proper string key for the app search provider
- Date: Thu, 26 Sep 2013 20:24:57 +0000 (UTC)
commit 99ad54c0476cf72873390c4dca8a7c0d0cee41db
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Feb 8 22:08:13 2013 -0500
appDisplay: Use a proper string key for the app search provider
Since we're going to be caching results based on the result ID,
we need to return a string-based result ID to cache on.
https://bugzilla.gnome.org/show_bug.cgi?id=704912
js/ui/appDisplay.js | 9 +++++----
src/shell-app-system.c | 22 +++++++++++++++-------
2 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 52d7b70..23a5385 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -866,8 +866,8 @@ const AppSearchProvider = new Lang.Class({
getResultMetas: function(apps, callback) {
let metas = [];
for (let i = 0; i < apps.length; i++) {
- let app = apps[i];
- metas.push({ 'id': app,
+ let app = this._appSys.lookup_app(apps[i]);
+ metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
@@ -885,7 +885,8 @@ const AppSearchProvider = new Lang.Class({
this.searchSystem.setResults(this, this._appSys.subsearch(previousResults, terms));
},
- activateResult: function(app) {
+ activateResult: function(result) {
+ let app = this._appSys.lookup_app(result);
let event = Clutter.get_current_event();
let modifiers = event ? event.get_state() : 0;
let openNewWindow = modifiers & Clutter.ModifierType.CONTROL_MASK;
@@ -905,7 +906,7 @@ const AppSearchProvider = new Lang.Class({
},
createResultObject: function (resultMeta, terms) {
- let app = resultMeta['id'];
+ let app = this._appSys.lookup_app(resultMeta['id']);
return new AppIcon(app);
}
});
diff --git a/src/shell-app-system.c b/src/shell-app-system.c
index ad27ade..bef052c 100644
--- a/src/shell-app-system.c
+++ b/src/shell-app-system.c
@@ -680,13 +680,22 @@ sort_and_concat_results (ShellAppSystem *system,
GSList *prefix_matches,
GSList *substring_matches)
{
+ GSList *matches = NULL;
+ GSList *l;
+
prefix_matches = g_slist_sort_with_data (prefix_matches,
compare_apps_by_usage,
system);
substring_matches = g_slist_sort_with_data (substring_matches,
compare_apps_by_usage,
system);
- return g_slist_concat (prefix_matches, substring_matches);
+
+ for (l = substring_matches; l != NULL; l = l->next)
+ matches = g_slist_prepend (matches, (char *) shell_app_get_id (SHELL_APP (l->data)));
+ for (l = prefix_matches; l != NULL; l = l->next)
+ matches = g_slist_prepend (matches, (char *) shell_app_get_id (SHELL_APP (l->data)));
+
+ return g_slist_reverse (matches);
}
/**
@@ -733,7 +742,6 @@ search_tree (ShellAppSystem *self,
g_slist_free_full (normalized_terms, g_free);
return sort_and_concat_results (self, prefix_results, substring_results);
-
}
/**
@@ -743,7 +751,7 @@ search_tree (ShellAppSystem *self,
*
* Search through applications for the given search terms.
*
- * Returns: (transfer container) (element-type ShellApp): List of applications
+ * Returns: (transfer container) (element-type utf8): List of applications
*/
GSList *
shell_app_system_initial_search (ShellAppSystem *self,
@@ -755,7 +763,7 @@ shell_app_system_initial_search (ShellAppSystem *self,
/**
* shell_app_system_subsearch:
* @system: A #ShellAppSystem
- * @previous_results: (element-type ShellApp): List of previous results
+ * @previous_results: (element-type utf8): List of previous results
* @terms: (element-type utf8): List of terms, logical AND
*
* Search through a previous result set; for more information, see
@@ -763,7 +771,7 @@ shell_app_system_initial_search (ShellAppSystem *self,
* the same as passed to shell_app_system_initial_search(). Note that returned
* strings are only valid until a return to the main loop.
*
- * Returns: (transfer container) (element-type ShellApp): List of application identifiers
+ * Returns: (transfer container) (element-type utf8): List of application identifiers
*/
GSList *
shell_app_system_subsearch (ShellAppSystem *system,
@@ -779,8 +787,8 @@ shell_app_system_subsearch (ShellAppSystem *system,
for (iter = previous_results; iter; iter = iter->next)
{
- ShellApp *app = iter->data;
-
+ ShellApp *app = shell_app_system_lookup_app (system, iter->data);
+
_shell_app_do_match (app, normalized_terms,
&prefix_results,
&substring_results);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]