after deleting/trashing msg, select next msg depending on sort order
[claws.git] / src / summaryview.c
index b3b14476c14f099d45e14828ba6d3eb8a616d6bd..aee456d086294523ba44f594696bac69e6f023cc 100644 (file)
@@ -461,6 +461,14 @@ void summary_thaw(SummaryView *summaryview)
                gtk_cmclist_thaw(GTK_CMCLIST(summaryview->ctree));
 }
 
+void summary_thaw_with_status(SummaryView *summaryview)
+{
+       if (summaryview) {
+               summary_status_show(summaryview);
+               gtk_cmclist_thaw(GTK_CMCLIST(summaryview->ctree));
+       }
+}
+
 void summary_grab_focus(SummaryView *summaryview)
 {
        if (summaryview)
@@ -4118,7 +4126,7 @@ void summary_mark_all_read(SummaryView *summaryview)
        if (prefs_common.ask_mark_all_read) {
                val = alertpanel_full(_("Mark all as read"),
                        _("Do you really want to mark all mails in this "
-                         "folder as read?"), GTK_STOCK_NO, _("Mark all as read"), NULL,
+                         "folder as read?"), GTK_STOCK_NO, GTK_STOCK_YES, NULL,
                          TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);
 
                if ((val & ~G_ALERTDISABLE) != G_ALERTALTERNATE)
@@ -4421,7 +4429,8 @@ void summary_delete(SummaryView *summaryview)
        folder_item_set_batch(summaryview->folder_item, FALSE);
        END_LONG_OPERATION(summaryview);
 
-       node = summary_find_next_msg(summaryview, sel_last);
+       if (summaryview->sort_type == SORT_ASCENDING)
+               node = summary_find_next_msg(summaryview, sel_last);
        if (!node)
                node = summary_find_prev_msg(summaryview, sel_last);
 
@@ -4579,7 +4588,9 @@ void summary_move_selected_to(SummaryView *summaryview, FolderItem *to_folder)
        if (prefs_common.immediate_exec) {
                summary_execute(summaryview);
        } else {
-               GtkCMCTreeNode *node = summary_find_next_msg(summaryview, sel_last);
+               GtkCMCTreeNode *node;
+               if (summaryview->sort_type == SORT_ASCENDING)
+                       node = summary_find_next_msg(summaryview, sel_last);
                if (!node)
                        node = summary_find_prev_msg(summaryview, sel_last);
                summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
@@ -4940,7 +4951,8 @@ gboolean summary_execute(SummaryView *summaryview)
                if (!new_selected &&
                    gtkut_ctree_node_is_selected(ctree, node)) {
                        summary_unselect_all(summaryview);
-                       new_selected = summary_find_next_msg(summaryview, node);
+                       if (summaryview->sort_type == SORT_ASCENDING)
+                               new_selected = summary_find_next_msg(summaryview, node);
                        if (!new_selected)
                                new_selected = summary_find_prev_msg
                                        (summaryview, node);