aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@novell.com>2006-09-28 16:56:51 +0800
committerSrinivasa Ragavan <sragavan@src.gnome.org>2006-09-28 16:56:51 +0800
commit067b04518cc4be31f74f77ccc2ee6ba59abc3e8d (patch)
treec3ad62aca3b6b8509bb7f2b3171a45106c6459ae
parentc1294ffa5ddbd7e341312a05c23ec1949f03967f (diff)
downloadgsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar
gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.gz
gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.bz2
gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.lz
gsoc2013-evolution-067b04518cc4be31f74f77ccc2ee6ba59abc3e8d.tar.xz
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
-rw-r--r--mail/ChangeLog8
-rw-r--r--mail/message-list.c11
-rw-r--r--mail/message-list.h3
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;