void _cinnamon_app_do_match (CinnamonApp *app, GSList *terms, GSList **prefix_results, GSList **substring_results) { CinnamonAppSearchMatch match; GAppInfo *appinfo; g_assert (app != NULL); /* Skip window-backed apps */ appinfo = (GAppInfo*)cinnamon_app_get_app_info (app); if (appinfo == NULL) return; /* Skip not-visible apps */ if (!g_app_info_should_show (appinfo)) return; match = _cinnamon_app_match_search_terms (app, terms); switch (match) { case MATCH_NONE: break; case MATCH_PREFIX: *prefix_results = g_slist_prepend (*prefix_results, app); break; case MATCH_SUBSTRING: *substring_results = g_slist_prepend (*substring_results, app); break; } }
/** * cinnamon_app_system_get_all: * @system: * * Returns: (transfer container) (element-type CinnamonApp): All installed applications */ GSList * cinnamon_app_system_get_all (CinnamonAppSystem *self) { GSList *result = NULL; GHashTableIter iter; gpointer key, value; g_hash_table_iter_init (&iter, self->priv->id_to_app); while (g_hash_table_iter_next (&iter, &key, &value)) { CinnamonApp *app = value; if (!g_desktop_app_info_get_nodisplay (cinnamon_app_get_app_info (app))) result = g_slist_prepend (result, app); } return result; }