summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2005-03-01 14:59:04 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-03-01 14:59:04 +0000
commit86db923391178872e0c91f07345fe344d68faab6 (patch)
treece9042828f6521b04637361df7f4237b156f2c1a /gtk
parent6834bb95976e095a296213b25428986319bc82db (diff)
downloadgtk+-86db923391178872e0c91f07345fe344d68faab6.tar.gz
Make icon data caching work again. (#168851, Alexander Larsson)
2005-03-01 Matthias Clasen <mclasen@redhat.com> * gtk/gtkicontheme.c (theme_lookup_icon): Make icon data caching work again. (#168851, Alexander Larsson)
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkicontheme.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 77b6c8c7c0..33208fc585 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -1897,7 +1897,12 @@ theme_lookup_icon (IconTheme *theme,
icon_info->cp_filename = g_locale_from_utf8 (icon_info->filename,
-1, NULL, NULL, NULL);
#endif
- if (min_dir->cache && has_icon_file)
+
+ if (min_dir->icon_data != NULL)
+ icon_info->data = g_hash_table_lookup (min_dir->icon_data, icon_name);
+
+ if (icon_info->data == NULL &&
+ min_dir->cache && has_icon_file)
{
gchar *icon_file_name, *icon_file_path;
@@ -1910,13 +1915,12 @@ theme_lookup_icon (IconTheme *theme,
min_dir->icon_data = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, (GDestroyNotify)icon_data_free);
load_icon_data (min_dir, icon_file_path, icon_file_name);
+
+ icon_info->data = g_hash_table_lookup (min_dir->icon_data, icon_name);
}
g_free (icon_file_name);
g_free (icon_file_path);
}
-
- if (min_dir->icon_data != NULL)
- icon_info->data = g_hash_table_lookup (min_dir->icon_data, icon_name);
icon_info->dir_type = min_dir->type;
icon_info->dir_size = min_dir->size;