}
#define START_LONG_OPERATION(summaryview,force_freeze) { \
+ if (summary_is_locked(summaryview)) \
+ return; \
summary_lock(summaryview); \
main_window_cursor_wait(summaryview->mainwin); \
if (force_freeze || sc_g_list_bigger(GTK_CLIST(summaryview->ctree)->selection, 1)) {\
- froze = TRUE; \
- summary_freeze(summaryview); \
+ froze = TRUE; \
+ summary_freeze(summaryview); \
} \
folder_item_update_freeze(); \
inc_lock(); \
#define END_LONG_OPERATION(summaryview) { \
inc_unlock(); \
folder_item_update_thaw(); \
- if (froze) \
- summary_thaw(summaryview); \
+ if (froze) { \
+ summary_thaw(summaryview); \
+ } \
main_window_cursor_normal(summaryview->mainwin); \
summary_unlock(summaryview); \
summaryview->msginfo_update_callback_id = \
void summary_unlock(SummaryView *summaryview)
{
- if (summaryview->lock_count)
+ if (summaryview->lock_count) {
summaryview->lock_count--;
+ }
}
gboolean summary_is_locked(SummaryView *summaryview)
} else {
mlist = folder_item_get_msg_list(summaryview->folder_item);
}
+
+ folder_item_set_batch(summaryview->folder_item, TRUE);
for (cur_list = mlist; cur_list; cur_list = cur_list->next) {
summary_filter_func((MsgInfo *)cur_list->data);
}
+ folder_item_set_batch(summaryview->folder_item, FALSE);
+
filtering_move_and_copy_msgs(mlist);
+
for (cur_list = mlist; cur_list; cur_list = cur_list->next) {
procmsg_msginfo_free((MsgInfo *)cur_list->data);
}