diff options
author | Milan Crha <mcrha@redhat.com> | 2013-03-05 05:06:56 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2013-03-05 05:07:47 +0800 |
commit | 4010ad11b4cd78d3cfa9453375310e0f8570e1dc (patch) | |
tree | c5e1b91de6e530ef1ed2a3e0bbea5e266a5f5b66 /mail/message-list.c | |
parent | d5480344fca8619381697ceed646462c8ae1b44e (diff) | |
download | gsoc2013-evolution-4010ad11b4cd78d3cfa9453375310e0f8570e1dc.tar.gz gsoc2013-evolution-4010ad11b4cd78d3cfa9453375310e0f8570e1dc.tar.zst gsoc2013-evolution-4010ad11b4cd78d3cfa9453375310e0f8570e1dc.zip |
Bug #645476 - Avoid scroll to cursor on folder change in message list (take 3)
Diffstat (limited to 'mail/message-list.c')
-rw-r--r-- | mail/message-list.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mail/message-list.c b/mail/message-list.c index 71bc8bbe0c..0885af6ae6 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -4783,6 +4783,7 @@ regen_list_done (struct _regen_list_msg *m) if (m->dotree) { gboolean forcing_expand_state = m->ml->expand_all || m->ml->collapse_all; + ETableItem *table_item = e_tree_get_item (E_TREE (m->ml)); if (m->ml->just_set_folder) { m->ml->just_set_folder = FALSE; @@ -4796,12 +4797,19 @@ regen_list_done (struct _regen_list_msg *m) if (forcing_expand_state || searching) e_tree_force_expanded_state (tree, (m->ml->expand_all || searching) ? 1 : -1); + e_tree_memory_freeze (E_TREE_MEMORY (m->ml->model)); + build_tree (m->ml, m->tree, m->changes); if (m->ml->thread_tree) camel_folder_thread_messages_unref (m->ml->thread_tree); m->ml->thread_tree = m->tree; m->tree = NULL; + if (!m->scroll_to_cursor && table_item) + table_item->queue_show_cursor = FALSE; + + e_tree_memory_thaw (E_TREE_MEMORY (m->ml->model)); + if (forcing_expand_state || searching) { if (m->ml->folder != NULL && tree != NULL && !searching) save_tree_state (m->ml); |