aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog11
-rw-r--r--mail/mail-callbacks.c4
-rw-r--r--mail/message-list.c17
3 files changed, 25 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 78bf11c37d..12b5bdfa6d 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,14 @@
+2001-08-10 Jason Leach <jleach@ximian.com>
+
+ * mail-callbacks.c (next_unread_msg): Since 'N' keypresses go
+ through here now, use wrap-around selecting.
+ (previous_unread_msg): Same for 'P' here.
+
+ * message-list.c (on_cursor_activated_idle): Stop this idle timer
+ when we have multiple items selected, this keeps it from loading
+ and then marking the last item in your selection list as read.
+ Bug #4693.
+
2001-08-10 Peter Williams <peterw@ximian.com>
* mail-accounts.c (mail_delete): Don't remove the account from the
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index 08a13954e4..b78849663f 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -1601,7 +1601,7 @@ next_unread_msg (GtkWidget *button, gpointer user_data)
row = e_tree_row_of_node (fb->message_list->tree, e_tree_get_cursor (fb->message_list->tree));
message_list_select (fb->message_list, row,
MESSAGE_LIST_SELECT_NEXT,
- 0, CAMEL_MESSAGE_SEEN, FALSE);
+ 0, CAMEL_MESSAGE_SEEN, TRUE);
}
void
@@ -1649,7 +1649,7 @@ previous_flagged_msg (GtkWidget *button, gpointer user_data)
row = e_tree_row_of_node (fb->message_list->tree, e_tree_get_cursor (fb->message_list->tree));
message_list_select (fb->message_list, row,
MESSAGE_LIST_SELECT_PREVIOUS,
- CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED, FALSE);
+ CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED, TRUE);
}
struct _expunged_folder_data {
diff --git a/mail/message-list.c b/mail/message-list.c
index 64c65404a7..e375809459 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -1226,7 +1226,7 @@ message_list_construct (MessageList *message_list)
message_list->tree = e_tree_scrolled_get_tree(E_TREE_SCROLLED (message_list));
e_tree_root_node_set_visible (message_list->tree, FALSE);
-
+
gtk_signal_connect (GTK_OBJECT (message_list->tree), "cursor_activated",
GTK_SIGNAL_FUNC (on_cursor_activated_cmd),
message_list);
@@ -1969,12 +1969,19 @@ static gboolean
on_cursor_activated_idle (gpointer data)
{
MessageList *message_list = data;
+ ESelectionModel *esm = e_tree_get_selection_model (message_list->tree);
+ gint selected = e_selection_model_selected_count (esm);
- printf("emitting cursor changed signal, for uid %s\n", message_list->cursor_uid);
- gtk_signal_emit(GTK_OBJECT (message_list), message_list_signals[MESSAGE_SELECTED], message_list->cursor_uid);
+ if (selected > 1) {
+ return TRUE;
+ } else {
+ printf ("emitting cursor changed signal, for uid %s\n", message_list->cursor_uid);
+ gtk_signal_emit (GTK_OBJECT (message_list),
+ message_list_signals[MESSAGE_SELECTED], message_list->cursor_uid);
- message_list->idle_id = 0;
- return FALSE;
+ message_list->idle_id = 0;
+ return FALSE;
+ }
}
static void