Bug 555711 – Wrong fallback order of mimetype icons
authorMatthias Clasen <matthiasc@src.gnome.org>
Fri, 10 Oct 2008 05:07:56 +0000 (05:07 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 10 Oct 2008 05:07:56 +0000 (05:07 +0000)
        * gcontenttype.c: Don't prefer generic icons over
        default mimetype icons.

        * xdgmime/xdgmimecache.c (xdg_mime_cache_get_icon):
        * xdgmime/xdgmime.c (xdg_mime_get_icon): Don't fall back
        to generic icons.
        Patch by Krysztof Kosiński

svn path=/trunk/; revision=7587

gio/ChangeLog
gio/gcontenttype.c
gio/xdgmime/xdgmime.c
gio/xdgmime/xdgmimecache.c

index 8e9d79069be4a47fba4a2d82d4e8a74e3003e840..0ceb81a7729a364ade34c840fe86153c8f196508 100644 (file)
@@ -1,3 +1,15 @@
+2008-10-10  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 555711 – Wrong fallback order of mimetype icons
+
+       * gcontenttype.c: Don't prefer generic icons over
+       default mimetype icons.
+
+       * xdgmime/xdgmimecache.c (xdg_mime_cache_get_icon): 
+       * xdgmime/xdgmime.c (xdg_mime_get_icon): Don't fall back
+       to generic icons.
+       Patch by Krysztof Kosiński
+
 2008-10-10  Matthias Clasen  <mclasen@redhat.com>
 
        Bug 555121 – Improved build-time handling of gio module-dir
index 732373bd9a55ea8bbff47d6f50843a9230de0761..16fc1843ec2883167355c8524f8b1278722dcab1 100644 (file)
@@ -747,6 +747,7 @@ g_content_type_get_icon (const char *type)
 {
   char *mimetype_icon, *generic_mimetype_icon, *q;
   char *xdg_mimetype_icon, *legacy_mimetype_icon;
+  char *xdg_mimetype_generic_icon;
   char *icon_names[4];
   int n = 0;
   const char *p;
@@ -756,6 +757,7 @@ g_content_type_get_icon (const char *type)
   
   G_LOCK (gio_xdgmime);
   xdg_mimetype_icon = g_strdup (xdg_mime_get_icon (type));
+  xdg_mimetype_generic_icon = g_strdup (xdg_mime_get_generic_icon (type));
   G_UNLOCK (gio_xdgmime);
 
   mimetype_icon = g_strdup (type);
@@ -780,6 +782,10 @@ g_content_type_get_icon (const char *type)
 
   icon_names[n++] = mimetype_icon;
   icon_names[n++] = legacy_mimetype_icon;
+
+  if (xdg_mimetype_generic_icon)
+    icon_names[n++] = xdg_mimetype_generic_icon;
+
   icon_names[n++] = generic_mimetype_icon;
   
   themed_icon = g_themed_icon_new_from_names (icon_names, n);
index a5bf6f2344405e571c2d6c0ebb9aceb325c7e059..55018ee48c28d72fc008b5d2be7b5d4908113ca5 100644 (file)
@@ -913,12 +913,7 @@ xdg_mime_get_icon (const char *mime)
   if (_caches)
     return _xdg_mime_cache_get_icon (mime);
 
-  icon = _xdg_mime_icon_list_lookup (icon_list, mime);
-
-  if (!icon)
-    icon = xdg_mime_get_generic_icon (mime);
-
-  return icon;
+  return _xdg_mime_icon_list_lookup (icon_list, mime);
 }
 
 const char *
index dcc18343100f3c9962ba0c7d520fd676aff24502..c93472eef1cadccd9691eeabd9361d7dbfd486f8 100644 (file)
@@ -953,14 +953,7 @@ _xdg_mime_cache_get_generic_icon (const char *mime)
 const char *
 _xdg_mime_cache_get_icon (const char *mime)
 {
-  const char *icon;
-  icon = cache_lookup_icon (mime, 32);
-  if (icon == NULL)
-    icon = _xdg_mime_cache_get_generic_icon (mime);
-
-  return icon;
+  return cache_lookup_icon (mime, 32);
 }
 
 static void