changeset 9845:7c459857f1c2

[gaim-migrate @ 10723] (20:27:46) shx: LSchiere: maybe I should check the buddy icon bug (20:27:56) shx: that should go in... right? (20:28:12) LSchiere: the buddy icons not updating? (20:28:15) LSchiere: yes that would be good to fix (20:28:59) shx: it happends for all prpls right? (20:29:15) LSchiere: i am unsure. i think i only have reports of it with msn (20:30:05) shx: maybe because msn users the ones that change it often :/ (20:30:18) LSchiere: shx: possibly (21:25:27) shx: LSchiere: that one is good, and the problem was in gtkconv.c so it affected every prpl committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 24 Aug 2004 01:26:54 +0000
parents 6c421922e143
children c28d5b45624e
files ChangeLog src/gtkconv.c
diffstat 2 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Aug 24 00:08:38 2004 +0000
+++ b/ChangeLog	Tue Aug 24 01:26:54 2004 +0000
@@ -31,6 +31,7 @@
 	* Better parsing of URLs containing special characters
 	* All users are shown when joining a Yahoo! conference (Bleeter Yaluser)
 	* You now leave all Yahoo! conferences when you log out of Yahoo!
+	* Buddy Icon updating bug fixed (Felipe Contreras)
 
 version 0.81 (08/05/2004):
 	New Features:
--- a/src/gtkconv.c	Tue Aug 24 00:08:38 2004 +0000
+++ b/src/gtkconv.c	Tue Aug 24 01:26:54 2004 +0000
@@ -2460,6 +2460,7 @@
 	else
 		stop_anim(NULL, conv);
 }
+
 static void
 remove_icon(GaimGtkConversation *gtkconv)
 {
@@ -5648,7 +5649,20 @@
 	if(account && account->gc)
 		prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl);
 
-	remove_icon(gtkconv);
+	/* Remove the current icon stuff */
+	if (gtkconv->u.im->icon != NULL)
+		gtk_widget_destroy(gtkconv->u.im->icon->parent->parent->parent);
+
+	if (gtkconv->u.im->anim != NULL)
+		g_object_unref(G_OBJECT(gtkconv->u.im->anim));
+
+	if (gtkconv->u.im->icon_timer != 0)
+		g_source_remove(gtkconv->u.im->icon_timer);
+
+	gtkconv->u.im->icon_timer = 0;
+
+	if (gtkconv->u.im->iter != NULL)
+		g_object_unref(G_OBJECT(gtkconv->u.im->iter));
 
 	if (!gaim_prefs_get_bool("/gaim/gtk/conversations/im/show_buddy_icons"))
 		return;
@@ -5656,9 +5670,6 @@
 	if (gaim_conversation_get_gc(conv) == NULL)
 		return;
 
-	if (gtkconv->u.im->anim)
-		g_object_unref(G_OBJECT(gtkconv->u.im->anim));
-
 
 
 	icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv));
@@ -5695,9 +5706,6 @@
 	if (!gtkconv->u.im->anim)
 		return;
 
-	if(gtkconv->u.im->iter)
-		g_object_unref(G_OBJECT(gtkconv->u.im->iter));
-
 	if (gdk_pixbuf_animation_is_static_image(gtkconv->u.im->anim)) {
 		gtkconv->u.im->iter = NULL;
 		buf = gdk_pixbuf_animation_get_static_image(gtkconv->u.im->anim);