diff --git a/ChangeLog b/ChangeLog index fad58325ee..3d9301cc2b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-08-04 Matthias Clasen + + * gtk/gtkicontheme.c: Update to handle GEmblem. + 2008-08-04 Michael Natterer * tests/prop-editor.c: undeprecate (apart from still using diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index a34a990630..c4ca0d80f1 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3458,19 +3458,21 @@ gtk_icon_theme_lookup_by_gicon (GtkIconTheme *icon_theme, else if (G_IS_EMBLEMED_ICON (icon)) { GIcon *base, *emblem; + GList *list, *l; + GtkIconInfo *emblem_info; base = g_emblemed_icon_get_icon (G_EMBLEMED_ICON (icon)); - emblem = g_emblemed_icon_get_emblem (G_EMBLEMED_ICON (icon)); - - /* recursively collect information for all emblems */ info = gtk_icon_theme_lookup_by_gicon (icon_theme, base, size, flags); if (info) { - GtkIconInfo *emblem_info; - - emblem_info = gtk_icon_theme_lookup_by_gicon (icon_theme, emblem, size / 2, flags); - if (emblem_info) - info->emblem_infos = g_slist_prepend (info->emblem_infos, emblem_info); + list = g_emblemed_icon_get_emblems (G_EMBLEMED_ICON (icon)); + for (l = list; l; l = l->next) + { + emblem = g_emblem_get_icon (G_EMBLEM (l->data)); + emblem_info = gtk_icon_theme_lookup_by_gicon (icon_theme, emblem, size / 2, flags); + if (emblem_info) + info->emblem_infos = g_slist_prepend (info->emblem_infos, emblem_info); + } } return info;