[gtk+/gtk-3-10] Fall back to non-symbolic icons
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-10] Fall back to non-symbolic icons
- Date: Wed, 16 Oct 2013 01:25:15 +0000 (UTC)
commit d25ee710715c60801b29289c4a0ee85fb337579c
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Oct 15 21:19:17 2013 -0400
Fall back to non-symbolic icons
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.
https://bugzilla.gnome.org/show_bug.cgi?id=708163
gtk/gtkicontheme.c | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 1459e90..336632c 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -904,7 +904,7 @@ gtk_icon_theme_finalize (GObject *object)
* the right name is found directly in one of the elements of
* @path, then that image will be used for the icon name.
* (This is legacy feature, and new icons should be put
- * into the default icon theme, which is called DEFAULT_THEME_NAME,
+ * into the default icon theme, which is called hicolor,
* rather than directly on the icon path.)
*
* Since: 2.4
@@ -1897,12 +1897,15 @@ gtk_icon_theme_lookup_icon_for_scale (GtkIconTheme *icon_theme,
if (is_symbolic)
{
- names = g_new (gchar *, dashes + 2);
+ names = g_new (gchar *, 2 * dashes + 3);
for (i = 0; nonsymbolic_names[i] != NULL; i++)
- names[i] = g_strconcat (nonsymbolic_names[i], "-symbolic", NULL);
+ {
+ names[i] = g_strconcat (nonsymbolic_names[i], "-symbolic", NULL);
+ names[dashes + 1 + i] = nonsymbolic_names[i];
+ }
- names[i] = NULL;
- g_strfreev (nonsymbolic_names);
+ names[dashes + 1 + i] = NULL;
+ g_free (nonsymbolic_names);
}
else
{
@@ -1910,13 +1913,13 @@ gtk_icon_theme_lookup_icon_for_scale (GtkIconTheme *icon_theme,
}
info = choose_icon (icon_theme, (const gchar **) names, size, scale, flags);
-
+
g_strfreev (names);
}
- else
+ else
{
const gchar *names[2];
-
+
names[0] = icon_name;
names[1] = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]