diff options
author | Srinivasa Ragavan <sragavan@novell.com> | 2006-09-28 16:56:51 +0800 |
---|---|---|
committer | Srinivasa Ragavan <sragavan@src.gnome.org> | 2006-09-28 16:56:51 +0800 |
commit | 067b04518cc4be31f74f77ccc2ee6ba59abc3e8d (patch) | |
tree | c3ad62aca3b6b8509bb7f2b3171a45106c6459ae /mail | |
parent | c1294ffa5ddbd7e341312a05c23ec1949f03967f (diff) | |
download | gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.gz gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.zst gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.zip |
** Pushing a downstream fix in SUSE.
2006-09-28 Srinivasa Ragavan <sragavan@novell.com>
** 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
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 8 | ||||
-rw-r--r-- | mail/message-list.c | 11 | ||||
-rw-r--r-- | 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 <sragavan@novell.com> + + ** 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 <mbarnes@redhat.com> 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; |