diff --git a/gio/ChangeLog b/gio/ChangeLog index 8e9d79069..0ceb81a77 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,15 @@ +2008-10-10 Matthias Clasen + + 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 Bug 555121 – Improved build-time handling of gio module-dir diff --git a/gio/gcontenttype.c b/gio/gcontenttype.c index 732373bd9..16fc1843e 100644 --- a/gio/gcontenttype.c +++ b/gio/gcontenttype.c @@ -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); diff --git a/gio/xdgmime/xdgmime.c b/gio/xdgmime/xdgmime.c index a5bf6f234..55018ee48 100644 --- a/gio/xdgmime/xdgmime.c +++ b/gio/xdgmime/xdgmime.c @@ -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 * diff --git a/gio/xdgmime/xdgmimecache.c b/gio/xdgmime/xdgmimecache.c index dcc183431..c93472eef 100644 --- a/gio/xdgmime/xdgmimecache.c +++ b/gio/xdgmime/xdgmimecache.c @@ -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