diff options
author | 2004-08-26 15:00:24 +0000 | |
---|---|---|
committer | 2004-08-26 15:00:24 +0000 | |
commit | 3ef9f393a9f7fae6c7e55cd2954f5e7bc386ae8e (patch) | |
tree | c1591112d62a38d39c9b56e73557567ae8cc5913 /net-im/gaim/files | |
parent | security fix. bug #61749 (diff) | |
download | historical-3ef9f393a9f7fae6c7e55cd2954f5e7bc386ae8e.tar.gz historical-3ef9f393a9f7fae6c7e55cd2954f5e7bc386ae8e.tar.bz2 historical-3ef9f393a9f7fae6c7e55cd2954f5e7bc386ae8e.zip |
Patch to fix crash with buddy icons and conversation buttons
Diffstat (limited to 'net-im/gaim/files')
-rw-r--r-- | net-im/gaim/files/digest-gaim-0.82-r1 | 1 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.83cvs-iconcrash.diff | 111 |
2 files changed, 112 insertions, 0 deletions
diff --git a/net-im/gaim/files/digest-gaim-0.82-r1 b/net-im/gaim/files/digest-gaim-0.82-r1 new file mode 100644 index 000000000000..74fa96f2df12 --- /dev/null +++ b/net-im/gaim/files/digest-gaim-0.82-r1 @@ -0,0 +1 @@ +MD5 e47420012e9c026c2563d074e267d49b gaim-0.82.tar.bz2 4603356 diff --git a/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff b/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff new file mode 100644 index 000000000000..c8934cb79191 --- /dev/null +++ b/net-im/gaim/files/gaim-0.83cvs-iconcrash.diff @@ -0,0 +1,111 @@ +Index: gtkconv.c +=================================================================== +RCS file: /cvsroot/gaim/gaim/src/gtkconv.c,v +retrieving revision 1.467 +retrieving revision 1.468 +diff -u -d -p -r1.467 -r1.468 +--- gtkconv.c 25 Aug 2004 23:45:16 -0000 1.467 ++++ gtkconv.c 26 Aug 2004 13:32:49 -0000 1.468 +@@ -3705,7 +3705,8 @@ setup_im_buttons(GaimConversation *conv, + /* Remove anything else in our parent */ + children = gtk_container_get_children(GTK_CONTAINER(parent)); + while (children != NULL) { +- gtk_container_remove(GTK_CONTAINER(parent), children->data); ++ if(children->data != gtkim->icon_container) ++ gtk_container_remove(GTK_CONTAINER(parent), children->data); + children = g_list_remove(children, children->data); + } + +@@ -5620,7 +5621,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve + + GdkPixbuf *buf; + +- GtkWidget *vbox; + GtkWidget *event; + GtkWidget *frame; + GdkPixbuf *scale; +@@ -5650,8 +5650,9 @@ gaim_gtkconv_update_buddy_icon(GaimConve + prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(account->gc->prpl); + + /* 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->icon_container != NULL) ++ gtk_widget_destroy(gtkconv->u.im->icon_container); ++ gtkconv->u.im->icon_container = NULL; + + if (gtkconv->u.im->anim != NULL) + g_object_unref(G_OBJECT(gtkconv->u.im->anim)); +@@ -5670,8 +5671,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve + if (gaim_conversation_get_gc(conv) == NULL) + return; + +- +- + icon = gaim_conv_im_get_icon(GAIM_CONV_IM(conv)); + + if (icon == NULL) +@@ -5696,7 +5695,6 @@ gaim_gtkconv_update_buddy_icon(GaimConve + /* make sure we remove the file as soon as possible */ + unlink(filename); + +- + if (err) { + gaim_debug(GAIM_DEBUG_ERROR, "gtkconv", + "Buddy icon error: %s\n", err->message); +@@ -5730,12 +5728,13 @@ gaim_gtkconv_update_buddy_icon(GaimConve + g_object_unref(G_OBJECT(scale)); + + +- vbox = gtk_vbox_new(FALSE, 0); ++ gtkconv->u.im->icon_container = gtk_vbox_new(FALSE, 0); + + frame = gtk_frame_new(NULL); + gtk_frame_set_shadow_type(GTK_FRAME(frame), + (bm ? GTK_SHADOW_NONE : GTK_SHADOW_IN)); +- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(gtkconv->u.im->icon_container), frame, ++ FALSE, FALSE, 0); + + event = gtk_event_box_new(); + gtk_container_add(GTK_CONTAINER(frame), event); +@@ -5757,14 +5756,17 @@ gaim_gtkconv_update_buddy_icon(GaimConve + /* the button seems to get its size before the box, so... */ + gtk_widget_size_request(gtkconv->send, &requisition); + if (button_type == GAIM_BUTTON_NONE || requisition.height * 1.5 < scale_height) { +- gtk_box_pack_start(GTK_BOX(gtkconv->lower_hbox), vbox, FALSE, FALSE, 0); ++ gtk_box_pack_start(GTK_BOX(gtkconv->lower_hbox), ++ gtkconv->u.im->icon_container, FALSE, FALSE, 0); + /* gtk_box_reorder_child(GTK_BOX(gtkconv->lower_hbox), vbox, 0); */ + } else { +- gtk_box_pack_start(GTK_BOX(gtkconv->bbox), vbox, FALSE, FALSE, 0); +- gtk_box_reorder_child(GTK_BOX(gtkconv->bbox), vbox, 0); ++ gtk_box_pack_start(GTK_BOX(gtkconv->bbox), ++ gtkconv->u.im->icon_container, FALSE, FALSE, 0); ++ gtk_box_reorder_child(GTK_BOX(gtkconv->bbox), ++ gtkconv->u.im->icon_container, 0); + } + +- gtk_widget_show(vbox); ++ gtk_widget_show(gtkconv->u.im->icon_container); + gtk_widget_show(frame); + + /* The buddy icon code needs badly to be fixed. */ + +Index: gtkconv.h +=================================================================== +RCS file: /cvsroot/gaim/gaim/src/gtkconv.h,v +retrieving revision 1.54 +retrieving revision 1.55 +diff -u -d -p -r1.54 -r1.55 +--- gtkconv.h 20 Aug 2004 05:11:30 -0000 1.54 ++++ gtkconv.h 26 Aug 2004 13:32:50 -0000 1.55 +@@ -114,6 +114,7 @@ struct _GaimGtkImPane + gboolean a_virgin; + + /* Buddy icon stuff */ ++ GtkWidget *icon_container; + GtkWidget *icon; + gboolean show_icon; + gboolean animate; + |