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 8e9d790..0ceb81a 100644 (file)
@@ -1,5 +1,17 @@
 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
 
        * fam/Makefile.am: Use GIO_MODULE_DIR consistently.
index 732373b..16fc184 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 a5bf6f2..55018ee 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 dcc1834..c93472e 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