diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-05-02 16:10:17 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-05-02 17:12:32 +0800 |
commit | 4b846aa7efc67f6e01f2e4344d8da0a298d172b8 (patch) | |
tree | f5220cb53bdc42e943b4bf33f999f826b61c91e3 /libempathy-gtk | |
parent | ee02e3e2da01c356c6883fa51b2d5cf1cac7318c (diff) | |
download | gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar.gz gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar.bz2 gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar.lz gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar.xz gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.tar.zst gsoc2013-empathy-4b846aa7efc67f6e01f2e4344d8da0a298d172b8.zip |
individual_store_get_individual_status_icon_with_icon_name: look in the cache before creating new pixbuf
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-individual-store.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c index 735e2db9d..b550245dc 100644 --- a/libempathy-gtk/empathy-individual-store.c +++ b/libempathy-gtk/empathy-individual-store.c @@ -1921,7 +1921,7 @@ individual_store_get_individual_status_icon_with_icon_name ( FolksIndividual *individual, const gchar *status_icon_name) { - GdkPixbuf *pixbuf_status = NULL; + GdkPixbuf *pixbuf_status; EmpathyIndividualStorePriv *priv; const gchar *protocol_name = NULL; gchar *icon_name = NULL; @@ -1953,13 +1953,18 @@ individual_store_get_individual_status_icon_with_icon_name ( { icon_name = g_strdup_printf ("%s", status_icon_name); } + + pixbuf_status = g_hash_table_lookup (priv->status_icons, icon_name); + if (pixbuf_status == NULL) { pixbuf_status = empathy_pixbuf_contact_status_icon_with_icon_name (contact, status_icon_name, show_protocols_here); + if (pixbuf_status != NULL) { + /* pass the reference to the hash table */ g_hash_table_insert (priv->status_icons, g_strdup (icon_name), pixbuf_status); } |