commit 90d8c2dc5a38de2bb992826583c8f20dac2f1ba4
parent 33fd5d6227e037fa5ff50ed5e1a07db8630e7f8e
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Tue, 7 Jul 2015 18:45:55 +0200
Avoid some unnecessary foldertree redraws.
In particular, there were some redraws before moving a folder
and before moving to a next unread message in different folder.
This slowed these actions perceptibly on Windows.
Diffstat:
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/folderview.c b/src/folderview.c
@@ -877,11 +877,13 @@ static void folderview_select_node(FolderView *folderview, GtkCMCTreeNode *node)
return;
}
+ gtk_cmclist_freeze(GTK_CMCLIST(ctree));
gtkut_ctree_expand_parent_all(ctree, node);
folderview->open_folder = TRUE;
gtkut_ctree_set_focus_row(ctree, node);
gtk_cmctree_select(ctree, node);
+ gtk_cmclist_thaw(GTK_CMCLIST(ctree));
if ((folderview->summaryview->folder_item &&
folderview->summaryview->folder_item->total_msgs > 0) ||
prefs_common.layout_mode == SMALL_LAYOUT)
@@ -2496,6 +2498,7 @@ void folderview_move_folder(FolderView *folderview, FolderItem *from_folder,
statusbar_verbosity_set(FALSE);
folder_item_update_freeze();
+ gtk_cmclist_freeze(GTK_CMCLIST(folderview->ctree));
if ((status = folder_item_move_to(from_folder, to_folder, &new_folder, copy)) == F_MOVE_OK) {
statusbar_verbosity_set(FALSE);
main_window_cursor_normal(folderview->mainwin);
@@ -2507,10 +2510,12 @@ void folderview_move_folder(FolderView *folderview, FolderItem *from_folder,
gtk_cmctree_find_by_row_data(GTK_CMCTREE(folderview->ctree),
NULL, to_folder), new_folder->folder);
folderview_select(folderview, new_folder);
+ gtk_cmclist_thaw(GTK_CMCLIST(folderview->ctree));
} else {
statusbar_verbosity_set(FALSE);
main_window_cursor_normal(folderview->mainwin);
STATUSBAR_POP(folderview->mainwin);
+ gtk_cmclist_thaw(GTK_CMCLIST(folderview->ctree));
folder_item_update_thaw();
switch (status) {
case F_MOVE_FAILED_DEST_IS_PARENT: