#define CURRENTLY_DISPLAYED(m) \
( (m->msgnum == displayed_msgnum) \
- && (!g_strcasecmp(m->folder->name,item->name)) )
+ && (!g_ascii_strcasecmp(m->folder->name,item->name)) )
gboolean summary_show(SummaryView *summaryview, FolderItem *item)
{
if (summaryview->mainwin->lock_count == 0 &&
(summaryview->moved > 0 || summaryview->copied > 0)) {
AlertValue val;
+ gboolean changed = FALSE;
val = alertpanel(_("Process mark"),
_("Some marks are left. Process it?"),
summary_unlock(summaryview);
summary_execute(summaryview);
summary_lock(summaryview);
+ changed = TRUE;
} else if (G_ALERTALTERNATE == val) {
/* DO NOTHING */
} else {
inc_unlock();
return FALSE;
}
- folder_update_op_count();
+ if (changed || !quicksearch_is_active(summaryview->quicksearch))
+ folder_update_op_count();
}
gtk_clist_freeze(GTK_CLIST(ctree));
void summary_select_prev_unread(SummaryView *summaryview)
{
GtkCTreeNode *node;
+ gboolean skip_cur = FALSE;
+
+ if (summaryview->displayed
+ && summaryview->selected == summaryview->displayed) {
+ debug_print("skipping current\n");
+ skip_cur = TRUE;
+ }
node = summary_find_prev_flagged_msg
- (summaryview, summaryview->selected, MSG_UNREAD, TRUE);
+ (summaryview, summaryview->selected, MSG_UNREAD, skip_cur);
if (!node) {
AlertValue val = 0;
{
GtkCTreeNode *node = summaryview->selected;
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
+ gboolean skip_cur = FALSE;
+
+ if (summaryview->displayed
+ && summaryview->selected == summaryview->displayed) {
+ debug_print("skipping cur\n");
+ skip_cur = TRUE;
+ }
+
node = summary_find_next_flagged_msg
- (summaryview, node, MSG_UNREAD, TRUE);
+ (summaryview, node, MSG_UNREAD, skip_cur);
if (node)
summary_select_node(summaryview, node, TRUE, FALSE);
g_strdup_printf("%s",
account->address);
- if (g_strcasecmp(from_name, msginfo->from) == 0) {
+ if (g_utf8_collate(from_name, msginfo->from) == 0) {
g_free(from_name);
found = TRUE;
break;
if (parent && parent != node) {
gtk_ctree_move(ctree, node, parent, NULL);
- gtk_ctree_expand(ctree, node);
}
node = next;
while (node) {
next = GTK_CTREE_NODE_NEXT(node);
- if (!summaryview->thread_collapsed)
- gtk_ctree_expand(ctree, node);
if (prefs_common.bold_unread &&
GTK_CTREE_ROW(node)->children)
summary_set_row_marks(summaryview, node);
case GDK_Down:
if ((node = summaryview->selected) != NULL) {
GtkCTreeNode *next = NULL;
- next = (event->keyval == GDK_Down)
- ? gtkut_ctree_node_next(ctree, node)
- : gtkut_ctree_node_prev(ctree, node);
+ do {
+ next = (event->keyval == GDK_Down)
+ ? gtkut_ctree_node_next(ctree, next ? next:node)
+ : gtkut_ctree_node_prev(ctree, next ? next:node);
+ } while (next && !gtk_ctree_is_viewable(ctree, next));
+
if (next) {
gtk_sctree_select_with_state
(GTK_SCTREE(ctree), next, event->state);
(ctree, GTK_CTREE_NODE(cur->data));
tmp2 = procmsg_get_message_file(msginfo);
if (!tmp2) continue;
- tmp1 = g_strconcat("file:/", tmp2, NULL);
+ tmp1 = g_strconcat("file://", tmp2, NULL);
g_free(tmp2);
if (!mail_list) {
if (!msginfo2->var_name) \
return -1; \
\
- return strcasecmp(msginfo1->var_name, msginfo2->var_name); \
+ return g_utf8_collate(msginfo1->var_name, msginfo2->var_name); \
}
CMP_FUNC_DEF(summary_cmp_by_to, to);
if (!str2)
return -1;
- return strcasecmp(str1, str2);
+ return g_utf8_collate(str1, str2);
}
static gint summary_cmp_by_simplified_subject