comparison src/gtkconv.c @ 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 54e0322c81fb
children c28d5b45624e
comparison
equal deleted inserted replaced
9844:6c421922e143 9845:7c459857f1c2
2458 if (gtkconv->u.im->animate) 2458 if (gtkconv->u.im->animate)
2459 start_anim(NULL, conv); 2459 start_anim(NULL, conv);
2460 else 2460 else
2461 stop_anim(NULL, conv); 2461 stop_anim(NULL, conv);
2462 } 2462 }
2463
2463 static void 2464 static void
2464 remove_icon(GaimGtkConversation *gtkconv) 2465 remove_icon(GaimGtkConversation *gtkconv)
2465 { 2466 {
2466 g_return_if_fail(gtkconv != NULL); 2467 g_return_if_fail(gtkconv != NULL);
2467 2468
5646 5647
5647 account = gaim_conversation_get_account(conv); 5648 account = gaim_conversation_get_account(conv);
5648 if(account && account->gc) 5649 if(account && account->gc)
5649 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl); 5650 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl);
5650 5651
5651 remove_icon(gtkconv); 5652 /* Remove the current icon stuff */
5653 if (gtkconv->u.im->icon != NULL)
5654 gtk_widget_destroy(gtkconv->u.im->icon->parent->parent->parent);
5655
5656 if (gtkconv->u.im->anim != NULL)
5657 g_object_unref(G_OBJECT(gtkconv->u.im->anim));
5658
5659 if (gtkconv->u.im->icon_timer != 0)
5660 g_source_remove(gtkconv->u.im->icon_timer);
5661
5662 gtkconv->u.im->icon_timer = 0;
5663
5664 if (gtkconv->u.im->iter != NULL)
5665 g_object_unref(G_OBJECT(gtkconv->u.im->iter));
5652 5666
5653 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/im/show_buddy_icons")) 5667 if (!gaim_prefs_get_bool("/gaim/gtk/conversations/im/show_buddy_icons"))
5654 return; 5668 return;
5655 5669
5656 if (gaim_conversation_get_gc(conv) == NULL) 5670 if (gaim_conversation_get_gc(conv) == NULL)
5657 return; 5671 return;
5658
5659 if (gtkconv->u.im->anim)
5660 g_object_unref(G_OBJECT(gtkconv->u.im->anim));
5661 5672
5662 5673
5663 5674
5664 icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv)); 5675 icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv));
5665 5676
5692 g_error_free(err); 5703 g_error_free(err);
5693 } 5704 }
5694 5705
5695 if (!gtkconv->u.im->anim) 5706 if (!gtkconv->u.im->anim)
5696 return; 5707 return;
5697
5698 if(gtkconv->u.im->iter)
5699 g_object_unref(G_OBJECT(gtkconv->u.im->iter));
5700 5708
5701 if (gdk_pixbuf_animation_is_static_image(gtkconv->u.im->anim)) { 5709 if (gdk_pixbuf_animation_is_static_image(gtkconv->u.im->anim)) {
5702 gtkconv->u.im->iter = NULL; 5710 gtkconv->u.im->iter = NULL;
5703 buf = gdk_pixbuf_animation_get_static_image(gtkconv->u.im->anim); 5711 buf = gdk_pixbuf_animation_get_static_image(gtkconv->u.im->anim);
5704 } else { 5712 } else {