gthemedicon: Fallback to non-symbolic icons
authorOlivier Brunel <jjk@jjacky.com>
Tue, 8 Oct 2013 14:11:44 +0000 (16:11 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 24 Oct 2013 12:09:48 +0000 (08:09 -0400)
When doing fallback for symbolic icons, we first shorten the name at dashes
while preserving the -symbolic suffix. But after exhausting that, we should also
try stripping the suffix.

See https://bugzilla.gnome.org/show_bug.cgi?id=708163

Signed-off-by: Olivier Brunel <jjk@jjacky.com>
https://bugzilla.gnome.org/show_bug.cgi?id=710254

gio/gthemedicon.c

index 1c3d418..ba658fa 100644 (file)
@@ -187,12 +187,15 @@ g_themed_icon_constructed (GObject *object)
 
       if (is_symbolic)
         {
-          themed->names = g_new (char *, dashes + 1 + 1);
+          themed->names = g_new (char *, 2 * dashes + 3);
           for (i = 0; names[i] != NULL; i++)
-            themed->names[i] = g_strconcat (names[i], "-symbolic", NULL);
+            {
+              themed->names[i] = g_strconcat (names[i], "-symbolic", NULL);
+              themed->names[dashes + 1 + i] = names[i];
+            }
 
-          themed->names[i] = NULL;
-          g_strfreev (names);
+          themed->names[dashes + 1 + i] = NULL;
+          g_free (names);
         }
       else
         {