static GdkBitmap *markxpmmask;
static GdkPixmap *deletedxpm;
static GdkBitmap *deletedxpmmask;
+static GdkPixmap *movedxpm;
+static GdkBitmap *movedxpmmask;
+static GdkPixmap *copiedxpm;
+static GdkBitmap *copiedxpmmask;
static GdkPixmap *newxpm;
static GdkBitmap *newxpmmask;
#define START_LONG_OPERATION(summaryview) { \
summary_lock(summaryview); \
main_window_cursor_wait(summaryview->mainwin); \
- gtk_clist_freeze(GTK_CLIST(summaryview->ctree)); \
+ if (sc_g_list_bigger(GTK_CLIST(summaryview->ctree)->selection, 1)) {\
+ froze = TRUE; \
+ gtk_clist_freeze(GTK_CLIST(summaryview->ctree)); \
+ } \
folder_item_update_freeze(); \
inc_lock(); \
hooks_unregister_hook(MSGINFO_UPDATE_HOOKLIST, \
#define END_LONG_OPERATION(summaryview) { \
inc_unlock(); \
folder_item_update_thaw(); \
- gtk_clist_thaw(GTK_CLIST(summaryview->ctree)); \
+ if (froze) \
+ gtk_clist_thaw(GTK_CLIST(summaryview->ctree)); \
main_window_cursor_normal(summaryview->mainwin); \
summary_unlock(summaryview); \
summaryview->msginfo_update_callback_id = \
&clipgpgsignedxpm, &clipgpgsignedxpmmask);
stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_SPAM,
&spamxpm, &spamxpmmask);
+ stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_MOVED,
+ &movedxpm, &movedxpmmask);
+ stock_pixmap_gdk(summaryview->ctree, STOCK_PIXMAP_COPIED,
+ &copiedxpm, &copiedxpmmask);
summary_set_fonts(summaryview);
END_TIMING();
} else {
gchar *text[N_SUMMARY_COLS];
- gint *col_pos = summaryview->col_pos;
START_TIMING("summaryview_set_ctree_from_list(2)");
cur = mlist;
for (; mlist != NULL; mlist = mlist->next) {
gtk_ctree_node_set_pixmap(ctree, row, col_pos[S_COL_MARK],
markxpm, markxpmmask);
} else if (MSG_IS_MOVE(flags)) {
- gtk_ctree_node_set_text(ctree, row, col_pos[S_COL_MARK], "o");
+ gtk_ctree_node_set_pixmap(ctree, row, col_pos[S_COL_MARK],
+ movedxpm, movedxpmmask);
if (style)
style = bold_marked_style;
else {
gtk_ctree_node_set_foreground
(ctree, row, &summaryview->color_marked);
} else if (MSG_IS_COPY(flags)) {
- gtk_ctree_node_set_text(ctree, row, col_pos[S_COL_MARK], "O");
+ gtk_ctree_node_set_pixmap(ctree, row, col_pos[S_COL_MARK],
+ copiedxpm, copiedxpmmask);
if (style)
style = bold_marked_style;
else {
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
folder_item_set_batch(summaryview->folder_item, TRUE);
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
folder_item_set_batch(summaryview->folder_item, TRUE);
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
for (cur = GTK_CLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next)
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
for (cur = GTK_CLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next)
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GtkCTreeNode *node;
AlertValue val;
+ gboolean froze = FALSE;
if (prefs_common.ask_mark_all_read) {
val = alertpanel_full(_("Mark all as read"),
GSList *msgs = NULL;
gboolean immediate_exec = prefs_common.immediate_exec;
gboolean moved = FALSE;
+ gboolean froze = FALSE;
+
prefs_common.immediate_exec = FALSE;
START_LONG_OPERATION(summaryview);
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
folder_item_set_batch(summaryview->folder_item, TRUE);
GtkCTreeNode *node;
AlertValue aval;
MsgInfo *msginfo;
+ gboolean froze = FALSE;
if (!item) return;
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
folder_item_set_batch(summaryview->folder_item, TRUE);
{
GList *cur;
GtkCTreeNode *sel_last = NULL;
+ gboolean froze = FALSE;
+
if (!to_folder) return;
if (!summaryview->folder_item ||
FOLDER_TYPE(summaryview->folder_item->folder) == F_NEWS) return;
void summary_copy_selected_to(SummaryView *summaryview, FolderItem *to_folder)
{
GList *cur;
+ gboolean froze = FALSE;
if (!to_folder) return;
if (!summaryview->folder_item) return;
}
folder_item_update_thaw();
- gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
if (new_selected) {
summary_unlock(summaryview);
gtk_sctree_select
- (GTK_SCTREE(ctree),
- new_selected);
+ (GTK_SCTREE(ctree), new_selected);
summary_lock(summaryview);
}
if (summaryview->threaded) {
- gtk_clist_freeze(GTK_CLIST(summaryview->ctree));
summary_thread_build(summaryview);
summary_thread_init(summaryview);
- gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
}
+ gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
+
summaryview->selected = clist->selection ?
GTK_CTREE_NODE(clist->selection->data) : NULL;
{
GtkCTreeNode *node;
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
+ gboolean froze = FALSE;
debug_print("Unthreading for execution...");
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
for (cur = GTK_CLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next)
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GList *cur;
+ gboolean froze = FALSE;
START_LONG_OPERATION(summaryview);
for (cur = GTK_CLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next)
stock_pixmap_gdk(ctree, STOCK_PIXMAP_GPG_SIGNED, &gpgsignedxpm, &gpgsignedxpmmask);
stock_pixmap_gdk(ctree, STOCK_PIXMAP_CLIP_GPG_SIGNED, &clipgpgsignedxpm, &clipgpgsignedxpmmask);
stock_pixmap_gdk(ctree, STOCK_PIXMAP_SPAM, &spamxpm, &spamxpmmask);
+ stock_pixmap_gdk(ctree, STOCK_PIXMAP_MOVED, &movedxpm, &movedxpmmask);
+ stock_pixmap_gdk(ctree, STOCK_PIXMAP_COPIED, &copiedxpm, &copiedxpmmask);
pixmap = stock_pixmap_widget(summaryview->hbox, STOCK_PIXMAP_DIR_OPEN);
gtk_box_pack_start(GTK_BOX(summaryview->hbox), pixmap, FALSE, FALSE, 4);