aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-display.c
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2001-10-12 15:24:40 +0800
committerJon Trowbridge <trow@src.gnome.org>2001-10-12 15:24:40 +0800
commit59c7688bd633383f4e6577a5eee4f65f051135a4 (patch)
tree3f5e7a856d07bc401d43166e57b3428ef85d06a5 /mail/mail-display.c
parent9b86a516810fb2d1eeb267b17046dc15849e3e53 (diff)
downloadgsoc2013-evolution-59c7688bd633383f4e6577a5eee4f65f051135a4.tar.gz
gsoc2013-evolution-59c7688bd633383f4e6577a5eee4f65f051135a4.tar.zst
gsoc2013-evolution-59c7688bd633383f4e6577a5eee4f65f051135a4.zip
Store our listener id. (popup_info_free): Disconnect our listener when we
2001-10-12 Jon Trowbridge <trow@ximian.com> * mail-display.c (html_button_press_event): Store our listener id. (popup_info_free): Disconnect our listener when we free the popup. (Bug #11040) svn path=/trunk/; revision=13619
Diffstat (limited to 'mail/mail-display.c')
-rw-r--r--mail/mail-display.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/mail/mail-display.c b/mail/mail-display.c
index 20587f49fe..1187c2237d 100644
--- a/mail/mail-display.c
+++ b/mail/mail-display.c
@@ -1610,6 +1610,7 @@ struct _PopupInfo {
GtkWidget *win;
guint destroy_timeout;
guint widget_destroy_handle;
+ Bonobo_EventSource_ListenerId listener_id;
gboolean hidden;
};
@@ -1623,6 +1624,10 @@ popup_info_free (PopupInfo *pop)
if (pop->destroy_timeout)
gtk_timeout_remove (pop->destroy_timeout);
+ bonobo_event_source_client_remove_listener (bonobo_widget_get_objref (BONOBO_WIDGET (pop->w)),
+ pop->listener_id,
+ NULL);
+
g_free (pop);
}
}
@@ -1819,9 +1824,9 @@ html_button_press_event (GtkWidget *widget, GdkEventButton *event, MailDisplay *
pop = make_popup_window (popup_thing);
- bonobo_event_source_client_add_listener (
- bonobo_widget_get_objref (BONOBO_WIDGET (popup_thing)),
- listener_cb, NULL, NULL, pop);
+ pop->listener_id =
+ bonobo_event_source_client_add_listener (bonobo_widget_get_objref (BONOBO_WIDGET (popup_thing)),
+ listener_cb, NULL, NULL, pop);
} else if (url || src) {
gint hide_mask = 0;