Mark messages as read when using the End key

(imported from commit b2495cb27b1362d037e786db7f108540f2ce655b)
This commit is contained in:
Leo Franchi 2013-04-23 11:58:02 -04:00
parent de44f08772
commit d0b8a2fd21
4 changed files with 17 additions and 9 deletions

View File

@ -42,7 +42,7 @@ var globals =
+ ' maybe_scroll_to_selected recenter_pointer_on_display suppress_scroll_pointer_update' + ' maybe_scroll_to_selected recenter_pointer_on_display suppress_scroll_pointer_update'
+ ' process_visible_unread_messages message_range message_in_table process_loaded_for_unread' + ' process_visible_unread_messages message_range message_in_table process_loaded_for_unread'
+ ' mark_all_as_read message_unread process_read_messages unread_in_current_view' + ' mark_all_as_read message_unread process_read_messages unread_in_current_view'
+ ' fast_forward_pointer recent_subjects' + ' fast_forward_pointer recent_subjects mark_read_between'
; ;

View File

@ -105,9 +105,13 @@ function process_hotkey(e) {
} }
dirkey = directional_hotkeys_id[code]; dirkey = directional_hotkeys_id[code];
var next_id = dirkey.getid(); var next_id = dirkey.getid();
var prev_id = current_msg_list.selected_id();
last_viewport_movement_direction = dirkey.direction; last_viewport_movement_direction = dirkey.direction;
current_msg_list.select_id(next_id, {then_scroll: true, current_msg_list.select_id(next_id, {then_scroll: true,
from_scroll: true}); from_scroll: true});
if (prev_id !== -1 && next_id !== -1) {
mark_read_between(current_msg_list, prev_id, next_id);
}
return true; return true;
} }

View File

@ -573,14 +573,7 @@ $(function () {
// Make the block not empty to appease jslint // Make the block not empty to appease jslint
var ignored = true; var ignored = true;
} else if (new_selected > scroll_start_message) { } else if (new_selected > scroll_start_message) {
var mark_as_read = []; mark_read_between(current_msg_list, scroll_start_message, new_selected);
$.each(message_range(current_msg_list, scroll_start_message, new_selected),
function (idx, msg) {
if (message_unread(msg)) {
mark_as_read.push(msg);
}
});
process_read_messages(mark_as_read);
} }
scroll_start_message = undefined; scroll_start_message = undefined;

View File

@ -419,6 +419,17 @@ function process_visible_unread_messages() {
} }
} }
function mark_read_between(msg_list, start_id, end_id) {
var mark_as_read = [];
$.each(message_range(msg_list, start_id, end_id),
function (idx, msg) {
if (message_unread(msg)) {
mark_as_read.push(msg);
}
});
process_read_messages(mark_as_read);
}
function send_pointer_update() { function send_pointer_update() {
if (!pointer_update_in_flight && if (!pointer_update_in_flight &&
furthest_read > server_furthest_read) { furthest_read > server_furthest_read) {