[evolution/gnome-3-2] Bug #578245 - View settings for threads getting lost



commit 23bc4bd3ce69e2c8dc5a10c58b0aae34c118b68c
Author: Milan Crha <mcrha redhat com>
Date:   Tue Dec 13 09:15:49 2011 +0100

    Bug #578245 - View settings for threads getting lost

 mail/message-list.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/mail/message-list.c b/mail/message-list.c
index d98f860..3a90848 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -5038,6 +5038,7 @@ mail_regen_list (MessageList *ml,
 	GConfClient *client;
 	const gchar *key;
 	gboolean thread_subject;
+	gboolean searching;
 
 	/* report empty search as NULL, not as one/two-space string */
 	if (search && (strcmp (search, " ") == 0 || strcmp (search, "  ") == 0))
@@ -5092,6 +5093,8 @@ mail_regen_list (MessageList *ml,
 		camel_folder_thread_messages_ref (m->tree);
 	}
 
+	searching = ml->search && *ml->search && !g_str_equal (ml->search, " ");
+
 	if (e_tree_row_count (E_TREE (ml)) <= 0) {
 		if (gtk_widget_get_visible (GTK_WIDGET (ml))) {
 			/* there is some info why the message list is empty, let it be something useful */
@@ -5101,11 +5104,11 @@ mail_regen_list (MessageList *ml,
 
 			g_free (txt);
 		}
-	} else if (ml->priv->any_row_changed && m->dotree && !ml->just_set_folder && (!ml->search || g_str_equal (ml->search, " "))) {
+	} else if (ml->priv->any_row_changed && m->dotree && !ml->just_set_folder && !searching) {
 		/* there has been some change on any row, if it was an expand state change,
 		 * then let it save; if not, then nothing happen. */
 		message_list_save_state (ml);
-	} else if (m->dotree && !ml->just_set_folder) {
+	} else if (m->dotree && !ml->just_set_folder && !searching) {
 		/* remember actual expand state and restore it after regen */
 		m->expand_state = e_tree_save_expanded_state_xml (E_TREE (ml));
 	}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]