# HG changeset patch # User Luke Schierer # Date 1093310814 0 # Node ID 7c459857f1c2395f5907f60e2334eb37ddb07df9 # Parent 6c421922e143346327d48dc489a94dfd791be7c0 [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 diff -r 6c421922e143 -r 7c459857f1c2 ChangeLog --- 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: diff -r 6c421922e143 -r 7c459857f1c2 src/gtkconv.c --- 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);