From 067b04518cc4be31f74f77ccc2ee6ba59abc3e8d Mon Sep 17 00:00:00 2001 From: Srinivasa Ragavan Date: Thu, 28 Sep 2006 08:56:51 +0000 Subject: ** Pushing a downstream fix in SUSE. 2006-09-28 Srinivasa Ragavan ** Pushing a downstream fix in SUSE. * message-list.c: (message_list_init), (message_list_destroy), (folder_changed), (regen_list_regened): Fix to indicate object destroy * message-list.h: removed the old mechanism. svn path=/trunk/; revision=32819 --- mail/ChangeLog | 8 ++++++++ mail/message-list.c | 11 ++++++++--- mail/message-list.h | 3 --- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index b62b9105b7..231789dd8a 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,11 @@ +2006-09-28 Srinivasa Ragavan + + ** Pushing a downstream fix in SUSE. + + * message-list.c: (message_list_init), (message_list_destroy), + (folder_changed), (regen_list_regened): Fix to indicate object destroy + * message-list.h: removed the old mechanism. + 2006-09-18 Matthew Barnes Fixes #351332 diff --git a/mail/message-list.c b/mail/message-list.c index 8ea25661f6..72c119795d 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -108,6 +108,7 @@ struct _MessageListPrivate { GtkWidget *invisible; /* 4 selection */ struct _MLSelection clipboard; + gboolean destroyed; }; static struct { @@ -2039,6 +2040,7 @@ message_list_init (MessageList *message_list) /* TODO: Should this only get the selection if we're realised? */ p = message_list->priv = g_malloc0(sizeof(*message_list->priv)); p->invisible = gtk_invisible_new(); + p->destroyed = FALSE; g_object_ref(p->invisible); gtk_object_sink((GtkObject *)p->invisible); @@ -2067,6 +2069,8 @@ message_list_destroy(GtkObject *object) MessageList *message_list = MESSAGE_LIST (object); struct _MessageListPrivate *p = message_list->priv; + p->destroyed = TRUE; + if (message_list->async_event) { mail_async_event_destroy(message_list->async_event); message_list->async_event = NULL; @@ -2115,8 +2119,6 @@ message_list_destroy(GtkObject *object) message_list->seen_id = 0; } - message_list->destroyed = TRUE; - GTK_OBJECT_CLASS (message_list_parent_class)->destroy(object); } @@ -2981,6 +2983,9 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) CamelFolderChangeInfo *changes; MessageList *ml = MESSAGE_LIST (user_data); + if (ml->priv->destroyed) + return; + if (event_data) { changes = camel_folder_change_info_new(); camel_folder_change_info_cat(changes, (CamelFolderChangeInfo *)event_data); @@ -3814,7 +3819,7 @@ regen_list_regened (struct _mail_msg *mm) { struct _regen_list_msg *m = (struct _regen_list_msg *)mm; - if (m->ml->destroyed) + if (m->ml->priv->destroyed) return; if (!m->complete) diff --git a/mail/message-list.h b/mail/message-list.h index 2b77d0b96b..96283afc66 100644 --- a/mail/message-list.h +++ b/mail/message-list.h @@ -128,9 +128,6 @@ struct _MessageList { /* do we automatically hide junk messages? */ guint hidejunk : 1; - /* is the message-list object in a destroyed state? */ - guint destroyed : 1; - /* frozen count */ guint frozen:16; -- cgit v1.2.3