summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2007-04-25 18:01:44 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-04-25 18:01:44 +0000
commit0ac3069358e0d269a4d05cc9ff13ee427226de51 (patch)
tree1a36a28b197431b2a0f53212f718e2d499129621
parentaa3f2a792aceef378a5456e72f59dc023b039061 (diff)
downloadgtk+-0ac3069358e0d269a4d05cc9ff13ee427226de51.tar.gz
Set the filename to NULL for builtin icons, sinc
2007-04-25 Matthias Clasen <mclasen@redhat.com> * gtk/gtkicontheme.c (theme_lookup_icon): Set the filename to NULL for builtin icons, sinc gtk_icon_info_get_builtin_pixbuf() depends on it. * tests/testicontheme.c: Report builtin icons. svn path=/trunk/; revision=17638
-rw-r--r--ChangeLog8
-rw-r--r--gtk/gtkicontheme.c18
-rw-r--r--tests/testicontheme.c4
3 files changed, 24 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index b343ae3c67..c970be6376 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2007-04-25 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkicontheme.c (theme_lookup_icon): Set the filename to
+ NULL for builtin icons, sinc gtk_icon_info_get_builtin_pixbuf()
+ depends on it.
+
+ * tests/testicontheme.c: Report builtin icons.
+
+2007-04-25 Matthias Clasen <mclasen@redhat.com>
+
* gtk/gtkprintoperation.c (preview_iface_end_preview): Don't
crash if end_run is not set. (#424168, Matthias Hasselmann)
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 2aaa445dc8..b7db3f4f8c 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -2079,13 +2079,23 @@ theme_lookup_icon (IconTheme *theme,
suffix = best_suffix (suffix, allow_svg);
g_assert (suffix != ICON_SUFFIX_NONE);
- file = g_strconcat (icon_name, string_from_suffix (suffix), NULL);
- icon_info->filename = g_build_filename (min_dir->dir, file, NULL);
- g_free (file);
+ if (min_dir->dir)
+ {
+ file = g_strconcat (icon_name, string_from_suffix (suffix), NULL);
+ icon_info->filename = g_build_filename (min_dir->dir, file, NULL);
+ g_free (file);
#ifdef G_OS_WIN32
- icon_info->cp_filename = g_locale_from_utf8 (icon_info->filename,
+ icon_info->cp_filename = g_locale_from_utf8 (icon_info->filename,
-1, NULL, NULL, NULL);
#endif
+ }
+ else
+ {
+ icon_info->filename = NULL;
+#ifdef G_OS_WIN32
+ icon_info->cp_filename = NULL;
+#endif
+ }
if (min_dir->icon_data != NULL)
icon_info->data = g_hash_table_lookup (min_dir->icon_data, icon_name);
diff --git a/tests/testicontheme.c b/tests/testicontheme.c
index c14f4d2d32..90d4eaad59 100644
--- a/tests/testicontheme.c
+++ b/tests/testicontheme.c
@@ -128,9 +128,9 @@ main (int argc, char *argv[])
if (argc >= 5)
size = atoi (argv[4]);
- icon_info = gtk_icon_theme_lookup_icon (icon_theme, argv[3], size, 0);
+ icon_info = gtk_icon_theme_lookup_icon (icon_theme, argv[3], size, GTK_ICON_LOOKUP_USE_BUILTIN);
g_print ("icon for %s at %dx%d is %s\n", argv[3], size, size,
- icon_info ? gtk_icon_info_get_filename (icon_info) : "<none>");
+ icon_info ? (gtk_icon_info_get_builtin_pixbuf (icon_info) ? "<builtin>" : gtk_icon_info_get_filename (icon_info)) : "<none>");
if (icon_info)
{