summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Seiler <rizzo@gentoo.org>2004-08-26 15:00:24 +0000
committerDon Seiler <rizzo@gentoo.org>2004-08-26 15:00:24 +0000
commit3ef9f393a9f7fae6c7e55cd2954f5e7bc386ae8e (patch)
treec1591112d62a38d39c9b56e73557567ae8cc5913 /net-im/gaim/files
parentsecurity fix. bug #61749 (diff)
downloadhistorical-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-r11
-rw-r--r--net-im/gaim/files/gaim-0.83cvs-iconcrash.diff111
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;
+