From 36798c8d671cc63f61824d7212aee1f7a97185da Mon Sep 17 00:00:00 2001 From: Zev Benjamin Date: Wed, 20 Feb 2013 12:18:15 -0500 Subject: [PATCH] Select the closest message to the target after narrowing (imported from commit e41fcb032af5a8653b7573cb87bbc879a2008343) --- zephyr/static/js/narrow.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/zephyr/static/js/narrow.js b/zephyr/static/js/narrow.js index 15d76b1c14..2ca3d9d394 100644 --- a/zephyr/static/js/narrow.js +++ b/zephyr/static/js/narrow.js @@ -228,14 +228,22 @@ exports.activate = function (operators, opts) { narrowed_msg_list = new MessageList('zfilt'); current_msg_list = narrowed_msg_list; + function maybe_select_closest() { + if (! narrowed_msg_list.empty()) { + var id = narrowed_msg_list.closest_id(target_id); + select_message_by_id(id, narrowed_msg_list, {then_scroll: true}); + } + } + // If our message id is not in range of the loaded message list, // we need to fetch the messages around the target message time if (all_msg_list.get(target_id) === undefined) { load_old_messages(target_id, 200, 200, narrowed_msg_list, function (messages) { - select_message_by_id(target_id, narrowed_msg_list, {then_scroll: true}); + maybe_select_closest(); }, true, false); } else { add_messages(all_msg_list.all(), narrowed_msg_list); + maybe_select_closest(); } // Mark as read any messages before or at the pointer in the narrowed view @@ -258,7 +266,6 @@ exports.activate = function (operators, opts) { $("#zfilt").css("opacity", 0).animate({opacity: 1}); reset_load_more_status(); - select_message_by_id(target_id, narrowed_msg_list, {then_scroll: true}); // If anything was highlighted before, try to rehighlight it. if (highlighted) {