make 'date' (not thread date) the default sort when clicking column header to switch...
[claws.git] / src / summaryview.c
index c4be0d0e0721ab1be5b5b2c38b57000e20b2bbbd..709a9095e4dde3f398b4caa4fd7425b8f6e5752c 100644 (file)
@@ -4429,11 +4429,15 @@ void summary_delete(SummaryView *summaryview)
        folder_item_set_batch(summaryview->folder_item, FALSE);
        END_LONG_OPERATION(summaryview);
 
-       if (summaryview->sort_type == SORT_ASCENDING)
+       if (summaryview->sort_type == SORT_ASCENDING) {
                node = summary_find_next_msg(summaryview, sel_last);
-       if (!node)
+               if (!node)
+                       node = summary_find_prev_msg(summaryview, sel_last);
+       } else {
                node = summary_find_prev_msg(summaryview, sel_last);
-
+               if (!node)
+                       node = summary_find_next_msg(summaryview, sel_last);
+       }
        summary_select_node(summaryview, node, prefs_common.always_show_msg, TRUE);
        
        if (prefs_common.immediate_exec || folder_has_parent_of_type(item, F_TRASH)) {
@@ -4588,11 +4592,16 @@ void summary_move_selected_to(SummaryView *summaryview, FolderItem *to_folder)
        if (prefs_common.immediate_exec) {
                summary_execute(summaryview);
        } else {
-               GtkCMCTreeNode *node;
-               if (summaryview->sort_type == SORT_ASCENDING)
+               GtkCMCTreeNode *node = NULL;
+               if (summaryview->sort_type == SORT_ASCENDING) {
                        node = summary_find_next_msg(summaryview, sel_last);
-               if (!node)
+                       if (!node)
+                               node = summary_find_prev_msg(summaryview, sel_last);
+               } else {
                        node = summary_find_prev_msg(summaryview, sel_last);
+                       if (!node)
+                               node = summary_find_next_msg(summaryview, sel_last);
+               }
                summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
                summary_status_show(summaryview);
        }
@@ -4951,10 +4960,15 @@ gboolean summary_execute(SummaryView *summaryview)
                if (!new_selected &&
                    gtkut_ctree_node_is_selected(ctree, node)) {
                        summary_unselect_all(summaryview);
-                       if (summaryview->sort_type == SORT_ASCENDING)
+                       if (summaryview->sort_type == SORT_ASCENDING) {
                                new_selected = summary_find_next_msg(summaryview, node);
-                       else
+                               if (!new_selected)
+                                       new_selected = summary_find_prev_msg(summaryview, node);
+                       } else {
                                new_selected = summary_find_prev_msg(summaryview, node);
+                               if (!new_selected)
+                                       new_selected = summary_find_next_msg(summaryview, node);
+                       }
                }
 
                gtk_sctree_remove_node((GtkSCTree *)ctree, node);
@@ -7118,10 +7132,10 @@ static void summary_size_clicked(GtkWidget *button, SummaryView *summaryview)
 
 static void summary_date_clicked(GtkWidget *button, SummaryView *summaryview)
 {
-       if (summaryview->sort_key == SORT_BY_DATE)
-               summary_sort_by_column_click(summaryview, SORT_BY_DATE);
-       else
+       if (summaryview->sort_key == SORT_BY_THREAD_DATE)
                summary_sort_by_column_click(summaryview, SORT_BY_THREAD_DATE);
+       else
+               summary_sort_by_column_click(summaryview, SORT_BY_DATE);
 }
 
 static void summary_from_clicked(GtkWidget *button, SummaryView *summaryview)