diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2013-03-22 12:43:20 -0400 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2013-03-22 17:42:15 -0400 |
commit | 7770b63d6726bc7ab4b886d6bd3edd009e622e55 (patch) | |
tree | f43fb72649bbb670faa6ca99e250b223aecbe9f6 | |
parent | 0e256a3627af124408a60e55acef3876b6eab021 (diff) | |
download | nautilus-7770b63d6726bc7ab4b886d6bd3edd009e622e55.tar.gz |
mime-actions: filter applications not supposed to be visible
Ensure NoDisplay=True applications don't end up in our Open With context
menus.
https://bugzilla.gnome.org/show_bug.cgi?id=696372
-rw-r--r-- | src/nautilus-mime-actions.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/nautilus-mime-actions.c b/src/nautilus-mime-actions.c index a31047adb..2b1c67764 100644 --- a/src/nautilus-mime-actions.c +++ b/src/nautilus-mime-actions.c @@ -258,6 +258,28 @@ filter_nautilus_handler (GList *apps) } static GList* +filter_no_show_apps (GList *apps) +{ + GList *l, *next; + GAppInfo *application; + + l = apps; + while (l != NULL) { + application = (GAppInfo *) l->data; + next = l->next; + + if (!g_app_info_should_show (application)) { + g_object_unref (application); + apps = g_list_delete_link (apps, l); + } + + l = next; + } + + return apps; +} + +static GList* filter_non_uri_apps (GList *apps, gboolean accept_files) { @@ -448,6 +470,8 @@ nautilus_mime_get_applications_for_file (NautilusFile *file) g_free (uri_scheme); } + result = filter_no_show_apps (result); + /* Filter out non-uri supporting apps */ result = filter_non_uri_apps (result, file_has_local_path (file)); |