aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--configure.in2
-rw-r--r--src/summaryview.c48
4 files changed, 39 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index e04e08c7..1e265fd4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-18
+
+ * src/summaryview.c: display next messages after deleting when
+ immediate_exec is enabled.
+
2005-05-17
* version 1.9.11
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 7cef5fe1..73de6ede 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,8 @@
+2005-05-18
+
+ * src/summaryview.c: immediate_exec が有効な場合、削除の後次の
+ メッセージを表示するようにした。
+
2005-05-17
* version 1.9.11
diff --git a/configure.in b/configure.in
index 9aeb982c..d5b81e5a 100644
--- a/configure.in
+++ b/configure.in
@@ -9,7 +9,7 @@ MINOR_VERSION=9
MICRO_VERSION=11
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=
+EXTRA_VERSION=+svn
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
diff --git a/src/summaryview.c b/src/summaryview.c
index e2bb307e..80762a1d 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -128,6 +128,10 @@ static gboolean summary_find_next_msg (SummaryView *summaryview,
GtkTreeIter *next,
GtkTreeIter *iter);
+static gboolean summary_find_nearest_msg(SummaryView *summaryview,
+ GtkTreeIter *target,
+ GtkTreeIter *iter);
+
static gboolean summary_find_prev_flagged_msg
(SummaryView *summaryview,
GtkTreeIter *prev,
@@ -1291,6 +1295,18 @@ static gboolean summary_find_next_msg(SummaryView *summaryview,
return FALSE;
}
+static gboolean summary_find_nearest_msg(SummaryView *summaryview,
+ GtkTreeIter *target, GtkTreeIter *iter)
+{
+ gboolean valid;
+
+ valid = summary_find_next_msg(summaryview, target, iter);
+ if (!valid)
+ valid = summary_find_prev_msg(summaryview, target, iter);
+
+ return valid;
+}
+
static gboolean summary_find_prev_flagged_msg(SummaryView *summaryview,
GtkTreeIter *prev,
GtkTreeIter *iter,
@@ -2427,7 +2443,6 @@ void summary_delete(SummaryView *summaryview)
FolderItem *item = summaryview->folder_item;
GList *rows, *cur;
GtkTreeIter last_sel, next;
- gboolean valid;
if (!item || FOLDER_TYPE(item->folder) == F_NEWS) return;
@@ -2457,12 +2472,7 @@ void summary_delete(SummaryView *summaryview)
if (prefs_common.immediate_exec || item->stype == F_TRASH) {
summary_execute(summaryview);
} else {
- valid = summary_find_next_msg(summaryview, &next, &last_sel);
- if (!valid)
- valid = summary_find_prev_msg
- (summaryview, &next, &last_sel);
-
- if (valid) {
+ if (summary_find_nearest_msg(summaryview, &next, &last_sel)) {
summary_select_row
(summaryview, &next,
messageview_is_visible
@@ -2874,13 +2884,13 @@ gboolean summary_execute(SummaryView *summaryview)
val |= summary_execute_copy(summaryview);
val |= summary_execute_delete(summaryview);
- statusbar_pop_all();
- STATUSBAR_POP(summaryview->mainwin);
-
summary_unlock(summaryview);
summary_remove_invalid_messages(summaryview);
+ statusbar_pop_all();
+ STATUSBAR_POP(summaryview->mainwin);
+
if (val != 0) {
alertpanel_error(_("Error occurred while processing messages."));
}
@@ -2923,10 +2933,7 @@ static void summary_remove_invalid_messages(SummaryView *summaryview)
valid = gtkut_tree_row_reference_get_iter(model, summaryview->selected,
&iter);
if (valid) {
- valid = summary_find_next_msg(summaryview, &next, &iter);
- if (!valid)
- valid = summary_find_prev_msg(summaryview, &next,
- &iter);
+ valid = summary_find_nearest_msg(summaryview, &next, &iter);
if (valid) {
gtk_tree_model_get(model, &next,
S_COL_MSG_INFO, &msginfo, -1);
@@ -2939,7 +2946,12 @@ static void summary_remove_invalid_messages(SummaryView *summaryview)
gtk_tree_row_reference_new(model, path);
gtk_tree_path_free(path);
}
- summary_select_row(summaryview, &next, FALSE, FALSE);
+ summary_select_row
+ (summaryview, &next,
+ (prefs_common.immediate_exec &&
+ messageview_is_visible
+ (summaryview->messageview)),
+ FALSE);
}
}
if (!valid) {
@@ -3432,11 +3444,7 @@ static void summary_modify_threads(SummaryView *summaryview)
has_selection = gtkut_tree_row_reference_get_iter
(model, summaryview->selected, &selected);
if (has_selection) {
- valid = summary_find_next_msg(summaryview, &next, &selected);
- if (!valid)
- valid = summary_find_prev_msg(summaryview, &next,
- &selected);
- if (valid) {
+ if (summary_find_nearest_msg(summaryview, &next, &selected)) {
selected = next;
selected_p = &selected;
} else