Bug 559633 – gtk_image_new_from_gicon does not always work for .desktop
authorMatthias Clasen <mclasen@redhat.com>
Fri, 28 Nov 2008 08:28:39 +0000 (08:28 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 28 Nov 2008 08:28:39 +0000 (08:28 +0000)
2008-11-28  Matthias Clasen  <mclasen@redhat.com>

        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

gio/ChangeLog
gio/gdesktopappinfo.c

index bbb87a0..8b10920 100644 (file)
@@ -1,5 +1,13 @@
 2008-11-28  Matthias Clasen  <mclasen@redhat.com>
 
+       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  <mclasen@redhat.com>
+
        Bug 548163 – Nautilus displays wrong error message for too long file
        names
 
index ec85744..c9dadc2 100644 (file)
@@ -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)