Fix default app lookup wrt parent types and defaults.list
authorAlexander Larsson <alexl@redhat.com>
Thu, 28 Jun 2012 12:50:37 +0000 (14:50 +0200)
committerAlexander Larsson <alexl@redhat.com>
Thu, 28 Jun 2012 13:05:03 +0000 (15:05 +0200)
There was an issue when looking up the default handler
for a type where a supertype was listed in defaults.list.
We would pick the default for the parent type even if
there was a handler for the more specific type.

In the case of the new-style defaults marking (
"Default Applications" in mimeapps.list) we were already
checking for a more specific handler befor using a default,
but we also need to do a similar check for the defaults.list
case.

https://bugzilla.gnome.org/show_bug.cgi?id=678944

gio/gdesktopappinfo.c

index 60c49e2..025b70c 100644 (file)
@@ -3326,7 +3326,7 @@ get_all_desktop_entries_for_mime_type (const char  *base_mime_type,
          default_entries = g_hash_table_lookup (dir->defaults_list_map, mime_type);
          for (j = 0; default_entries != NULL && default_entries[j] != NULL; j++)
             {
-              if (default_entry == NULL && old_default_entry == NULL)
+              if (default_entry == NULL && old_default_entry == NULL && desktop_entries == NULL)
                 old_default_entry = g_strdup (default_entries[j]);
 
               desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries);