From a8c88cae768e4ea41d21a495096e5ef72490db96 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 10 Oct 2008 05:07:56 +0000 Subject: [PATCH] =?utf8?q?=20=20=20=20=20=20=20=20Bug=20555711=20=E2=80=93?= =?utf8?q?=20Wrong=20fallback=20order=20of=20mimetype=20icons?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 | 12 ++++++++++++ gio/gcontenttype.c | 6 ++++++ gio/xdgmime/xdgmime.c | 7 +------ gio/xdgmime/xdgmimecache.c | 9 +-------- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index 8e9d7906..0ceb81a7 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 732373bd..16fc1843 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 a5bf6f23..55018ee4 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 dcc18343..c93472ee 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 -- 2.34.1