From 2d89e54a1d42b95417f0ecf3631b272c35f9b231 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 12 Oct 2004 02:42:00 +0000 Subject: ** See bug #67408. 2004-10-11 Not Zed ** See bug #67408. * em-folder-view.c (emfv_gui_folder_changed): noop if we were destroyed. (emfv_destroy): set destroyed bit. svn path=/trunk/; revision=27544 --- mail/ChangeLog | 8 ++++++++ mail/em-folder-view.c | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index a57b5a45ed..2b0d00aa6f 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2004-10-11 Not Zed + + ** See bug #67408. + + * em-folder-view.c (emfv_gui_folder_changed): noop if we were + destroyed. + (emfv_destroy): set destroyed bit. + 2004-10-11 Not Zed * mail-component.c (mc_startup): register the formatter types diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index ab3de6d597..ff53fa4eb0 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -129,6 +129,7 @@ struct _EMFolderViewPrivate { guint seen_id; guint setting_notify_id; int nomarkseen:1; + int destroyed:1; CamelObjectHookID folder_changed_id; @@ -221,6 +222,8 @@ emfv_destroy (GtkObject *o) EMFolderView *emfv = (EMFolderView *) o; struct _EMFolderViewPrivate *p = emfv->priv; + p->destroyed = TRUE; + if (p->seen_id) { g_source_remove(p->seen_id); p->seen_id = 0; @@ -2221,9 +2224,10 @@ emfv_format_popup_event(EMFormatHTMLDisplay *efhd, GdkEventButton *event, const static void emfv_gui_folder_changed(CamelFolder *folder, void *dummy, EMFolderView *emfv) { - emfv_enable_menus(emfv); - - g_signal_emit(emfv, signals[EMFV_LOADED], 0); + if (!emfv->priv->destroyed) { + emfv_enable_menus(emfv); + g_signal_emit(emfv, signals[EMFV_LOADED], 0); + } g_object_unref(emfv); } -- cgit