From: Matthias Clasen Date: Fri, 28 Nov 2008 08:28:39 +0000 (+0000) Subject: Bug 559633 – gtk_image_new_from_gicon does not always work for .desktop X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=5e6aea1b2f1946b0f65a781627224bb89029b6ac;p=dana%2Fcg-glib.git Bug 559633 – gtk_image_new_from_gicon does not always work for .desktop 2008-11-28 Matthias Clasen Bug 559633 – gtk_image_new_from_gicon does not always work for .desktop files * gdesktopappinfo.c (g_desktop_app_info_new_from_keyfile): Ignore extensions on icon names. Proposed by Axel von Bertoldi. svn path=/trunk/; revision=7698 --- diff --git a/gio/ChangeLog b/gio/ChangeLog index bbb87a06..8b10920a 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,11 @@ +2008-11-28 Matthias Clasen + + Bug 559633 – gtk_image_new_from_gicon does not always work for + .desktop files + + * gdesktopappinfo.c (g_desktop_app_info_new_from_keyfile): Ignore + extensions on icon names. Proposed by Axel von Bertoldi. + 2008-11-28 Matthias Clasen Bug 548163 – Nautilus displays wrong error message for too long file diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index ec85744a..c9dadc27 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -267,7 +267,18 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) g_object_unref (file); } else - info->icon = g_themed_icon_new (info->icon_name); + { + char *p; + + /* Work around a common mistake in desktop files */ + if ((p = strrchr (info->icon_name, '.')) != NULL && + (strcmp (p, ".png") == 0 || + strcmp (p, ".xpm") == 0 || + strcmp (p, ".svg") == 0)) + *p = 0; + + info->icon = g_themed_icon_new (info->icon_name); + } } if (info->exec)