diff options
author | Rebecca Schulman <rebecka@eazel.com> | 2001-02-05 21:36:04 +0000 |
---|---|---|
committer | Rebecca Schulman <rebecka@src.gnome.org> | 2001-02-05 21:36:04 +0000 |
commit | e115f75c63d73e5a168e2314eb09b5700d684e44 (patch) | |
tree | 18b4ef39c9cf457b1ff6cbf7b618de157b226c77 /libnautilus-private/nautilus-mime-actions.c | |
parent | 1d10bfc8a08b70dbc5ef47ecb15e5654618a025d (diff) | |
download | nautilus-e115f75c63d73e5a168e2314eb09b5700d684e44.tar.gz |
reviewed by: Maciej Stachowiak <mjs@eazel.com>
2001-02-05 Rebecca Schulman <rebecka@eazel.com>
reviewed by: Maciej Stachowiak <mjs@eazel.com>
* libnautilus-extensions/nautilus-mime-actions.c:
(nautilus_mime_get_default_component_sort_conditions),
(nautilus_mime_get_default_component_for_file_internal),
(nautilus_mime_get_short_list_components_for_file):
Changes to make sure the short list is sorted
correctly, so the correct default application is chosen.
Diffstat (limited to 'libnautilus-private/nautilus-mime-actions.c')
-rw-r--r-- | libnautilus-private/nautilus-mime-actions.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libnautilus-private/nautilus-mime-actions.c b/libnautilus-private/nautilus-mime-actions.c index 7e11d78d6..79a97deea 100644 --- a/libnautilus-private/nautilus-mime-actions.c +++ b/libnautilus-private/nautilus-mime-actions.c @@ -291,9 +291,8 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d /* Prefer something from the short list */ short_list = nautilus_mime_get_short_list_components_for_file (file); - if (short_list != NULL) { - sort_conditions[1] = g_strdup ("has (['"); + sort_conditions[1] = g_strdup ("prefer_by_list_order (iid, ['"); for (p = short_list; p != NULL; p = p->next) { prev = sort_conditions[1]; @@ -303,7 +302,7 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d "','", NULL); } else { sort_conditions[1] = g_strconcat (prev, ((OAF_ServerInfo *) (p->data))->iid, - "'], iid)", NULL); + "'])", NULL); } g_free (prev); } @@ -415,7 +414,7 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file, if (info_list != NULL) { server = OAF_ServerInfo_duplicate (info_list->data); gnome_vfs_mime_component_list_free (info_list); - + if (default_component_string != NULL && strcmp (server->iid, default_component_string) == 0) { used_user_chosen_info = TRUE; /* Default component chosen based on user-stored . */ } @@ -601,12 +600,15 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file) iids = g_list_prepend (iids, p->data); } } - + + /* By copying the iids using g_list_prepend, we've reversed the short + list order. We need to use the order to determine the first available + component, so reverse it now to maintain original ordering */ + iids = g_list_reverse (iids); result = NULL; if (iids != NULL) { extra_requirements = g_strdup ("has (['"); - for (p = iids; p != NULL; p = p->next) { prev = extra_requirements; @@ -615,11 +617,9 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file) } else { extra_requirements = g_strconcat (prev, p->data, "'], iid)", NULL); } - g_free (prev); } - result = nautilus_do_component_query (mime_type, uri_scheme, item_mime_types, FALSE, explicit_iids, NULL, extra_requirements, &ev); g_free (extra_requirements); |