aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@yandex.ru>2006-12-21 08:53:20 +0800
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>2006-12-21 08:53:20 +0800
commitc004b304e9f83349f87b845bb485de18a550615e (patch)
tree2b935ee4a2461e7518a2fad6629d4efcd9dcf139 /mail
parent2e0dda009f1aa901f02af55eb3e5977e48b1cc49 (diff)
downloadgsoc2013-evolution-c004b304e9f83349f87b845bb485de18a550615e.tar.gz
gsoc2013-evolution-c004b304e9f83349f87b845bb485de18a550615e.tar.zst
gsoc2013-evolution-c004b304e9f83349f87b845bb485de18a550615e.zip
Disconnect handlers on image destroy. Fixes bug #340165.
2006-12-21 Nickolay V. Shmyrev <nshmyrev@yandex.ru> * mail/em-format-html-display.c: (efhd_image_unallocate), (efhd_attachment_image): Disconnect handlers on image destroy. Fixes bug #340165. svn path=/trunk/; revision=33084
Diffstat (limited to 'mail')
-rw-r--r--mail/em-format-html-display.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c
index 9d7a13d787..4564e8155f 100644
--- a/mail/em-format-html-display.c
+++ b/mail/em-format-html-display.c
@@ -182,6 +182,7 @@ struct _attach_puri {
int fit_width;
int fit_height;
GtkImage *image;
+ GtkWidget *event_box;
/* Optional Text Mem Stream */
CamelStreamMem *mstream;
@@ -1695,6 +1696,11 @@ efhd_image_unallocate (struct _EMFormatPURI * puri)
{
struct _attach_puri *info = (struct _attach_puri *) puri;
g_signal_handlers_disconnect_by_func(info->html, efhd_image_resized, info);
+
+ g_signal_handlers_disconnect_by_func(info->event_box, efhd_image_popup, info);
+ g_signal_handlers_disconnect_by_func(info->event_box, efhd_image_change_cursor, info);
+ g_signal_handlers_disconnect_by_func(info->event_box, efhd_attachment_popup_menu, info);
+ g_signal_handlers_disconnect_by_func(info->event_box, efhd_image_fit_width, info);
}
static gboolean
@@ -1727,6 +1733,7 @@ efhd_attachment_image(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObjec
}
box = gtk_event_box_new();
+ info->event_box = box;
gtk_container_add((GtkContainer *)box, (GtkWidget *)info->image);
gtk_widget_show_all(box);
gtk_container_add((GtkContainer *)eb, box);