projects
/
claws.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7171f9e
)
fix msg selection after delete/trash
author
Paul
<paul@claws-mail.org>
Wed, 29 Jul 2015 11:24:06 +0000
(12:24 +0100)
committer
Paul
<paul@claws-mail.org>
Wed, 29 Jul 2015 11:24:06 +0000
(12:24 +0100)
src/summaryview.c
patch
|
blob
|
history
diff --git
a/src/summaryview.c
b/src/summaryview.c
index 8222618009482ae58c1ee4235ad4b24b38ffc07a..642df587167e8da66b1eea467b57e87c9c4a0c9d 100644
(file)
--- a/
src/summaryview.c
+++ b/
src/summaryview.c
@@
-4429,13
+4429,15
@@
void summary_delete(SummaryView *summaryview)
folder_item_set_batch(summaryview->folder_item, FALSE);
END_LONG_OPERATION(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);
node = summary_find_next_msg(summaryview, sel_last);
- else
- node = summary_find_prev_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);
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)) {
summary_select_node(summaryview, node, prefs_common.always_show_msg, TRUE);
if (prefs_common.immediate_exec || folder_has_parent_of_type(item, F_TRASH)) {
@@
-4590,13
+4592,16
@@
void summary_move_selected_to(SummaryView *summaryview, FolderItem *to_folder)
if (prefs_common.immediate_exec) {
summary_execute(summaryview);
} else {
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);
node = summary_find_next_msg(summaryview, sel_last);
- else
- node = summary_find_prev_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);
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);
}
summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
summary_status_show(summaryview);
}
@@
-4955,10
+4960,15
@@
gboolean summary_execute(SummaryView *summaryview)
if (!new_selected &&
gtkut_ctree_node_is_selected(ctree, node)) {
summary_unselect_all(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);
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);
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);
}
gtk_sctree_remove_node((GtkSCTree *)ctree, node);