diff options
-rw-r--r-- | mail/ChangeLog | 11 | ||||
-rw-r--r-- | mail/mail-callbacks.c | 4 | ||||
-rw-r--r-- | mail/message-list.c | 17 |
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 |