File glib2-fix-default-mime-handler.patch of Package glib2

commit 862c5a86d7ac24e1607749fe7c3ce772727c2691
Author: Vincent Untz <vuntz@gnome.org>
Date:   Sun Feb 20 10:41:17 2011 +0100

    appinfo: Do not override system default handler with less specific one
    
    We were considering explicitly configured defaults for parent types
    after we already got results for the specific type we're interested in.
    
    This resulted in the explicit default for text/plain to override all
    system defaults for subtypes of text/plain, for example. The explicit
    default should not apply to subtypes that have a system default.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=642797

diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index 61ef54c..f81d3db 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -3059,14 +3059,18 @@ get_all_desktop_entries_for_mime_type (const char  *base_mime_type,
 	{
 	  dir = dir_list->data;
 
-          /* Pick the explicit default application */
-          entry = g_hash_table_lookup (dir->mimeapps_list_defaults_map, mime_type);
-
-          if (entry != NULL)
+          /* Pick the explicit default application if we got no result earlier
+           * (ie, for more specific mime types) */
+          if (desktop_entries == NULL)
             {
-              /* Save the default entry if it's the first one we encounter */
-              if (default_entry == NULL)
-                default_entry = g_strdup (entry);
+              entry = g_hash_table_lookup (dir->mimeapps_list_defaults_map, mime_type);
+
+              if (entry != NULL)
+                {
+                  /* Save the default entry if it's the first one we encounter */
+                  if (default_entry == NULL)
+                    default_entry = g_strdup (entry);
+                }
             }
 
 	  /* Then added associations from mimeapps.list */
openSUSE Build Service is sponsored by