make 'next_on_delete' hidden pref apply after trashing or moving a msg in addition...
authorPaul <paul@claws-mail.org>
Mon, 4 Jul 2016 10:02:58 +0000 (11:02 +0100)
committerPaul <paul@claws-mail.org>
Mon, 4 Jul 2016 10:02:58 +0000 (11:02 +0100)
fixes bug #3600.
document this hidden pref also

manual/advanced.xml
src/summaryview.c

index 2d49d00cb0cfaec5c5b145a753baba2cf564eca8..223c9c929e2267a5d42dda89af2751d9991d9924 100644 (file)
     View as is used in the Message List. Default is '0', turned off.
          </para>
        </listitem>
     View as is used in the Message List. Default is '0', turned off.
          </para>
        </listitem>
-      </varlistentry>      
+      </varlistentry>
+      <varlistentry>
+       <term><literal>next_on_delete</literal></term>
+       <listitem>
+         <para>
+    '0' or '1'. Controls the message selection after deleting, moving, or
+    trashing a message. Default is '0', select previous message.
+         </para>
+       </listitem>
+      </varlistentry>
       <varlistentry>
        <term><literal>outgoing_fallback_to_ascii</literal></term>
        <listitem>
       <varlistentry>
        <term><literal>outgoing_fallback_to_ascii</literal></term>
        <listitem>
index 731d24f6bdf1005379d405e4b922c58a75ae6176..4a519df1a11c1d7e26af8ccb461181fa93c40edc 100644 (file)
@@ -4594,11 +4594,11 @@ void summary_move_selected_to(SummaryView *summaryview, FolderItem *to_folder)
                GtkCMCTreeNode *node = NULL;
                if (summaryview->sort_type == SORT_ASCENDING) {
                        node = summary_find_next_msg(summaryview, sel_last);
                GtkCMCTreeNode *node = NULL;
                if (summaryview->sort_type == SORT_ASCENDING) {
                        node = summary_find_next_msg(summaryview, sel_last);
-                       if (!node)
+                       if (!node || prefs_common.next_on_delete == FALSE)
                                node = summary_find_prev_msg(summaryview, sel_last);
                } else {
                        node = summary_find_prev_msg(summaryview, sel_last);
                                node = summary_find_prev_msg(summaryview, sel_last);
                } else {
                        node = summary_find_prev_msg(summaryview, sel_last);
-                       if (!node)
+                       if (!node || prefs_common.next_on_delete == FALSE)
                                node = summary_find_next_msg(summaryview, sel_last);
                }
                summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
                                node = summary_find_next_msg(summaryview, sel_last);
                }
                summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
@@ -4964,11 +4964,11 @@ gboolean summary_execute(SummaryView *summaryview)
                        summary_unselect_all(summaryview);
                        if (summaryview->sort_type == SORT_ASCENDING) {
                                new_selected = summary_find_next_msg(summaryview, node);
                        summary_unselect_all(summaryview);
                        if (summaryview->sort_type == SORT_ASCENDING) {
                                new_selected = summary_find_next_msg(summaryview, node);
-                               if (!new_selected)
+                               if (!new_selected || prefs_common.next_on_delete == FALSE)
                                        new_selected = summary_find_prev_msg(summaryview, node);
                        } else {
                                new_selected = summary_find_prev_msg(summaryview, node);
                                        new_selected = summary_find_prev_msg(summaryview, node);
                        } else {
                                new_selected = summary_find_prev_msg(summaryview, node);
-                               if (!new_selected)
+                               if (!new_selected || prefs_common.next_on_delete == FALSE)
                                        new_selected = summary_find_next_msg(summaryview, node);
                        }
                }
                                        new_selected = summary_find_next_msg(summaryview, node);
                        }
                }