aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog8
-rw-r--r--mail/em-folder-view.c10
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,5 +1,13 @@
2004-10-11 Not Zed <NotZed@Ximian.com>
+ ** 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 <NotZed@Ximian.com>
+
* mail-component.c (mc_startup): register the formatter types
before registering the formatter hook.
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);
}