diff --git a/static/js/message_list.js b/static/js/message_list.js index b9f37984c3..c9911b24af 100644 --- a/static/js/message_list.js +++ b/static/js/message_list.js @@ -457,7 +457,8 @@ MessageList.prototype = { show_message_as_read: function (message, options) { var row = this.get_row(message.id); - if (options.from === 'pointer' && feature_flags.mark_read_at_bottom) { + if ((options.from === 'pointer' && feature_flags.mark_read_at_bottom) || + options.from === "server") { row.find('.unread_marker').addClass('fast_fade'); } else { row.find('.unread_marker').addClass('slow_fade'); diff --git a/static/js/zulip.js b/static/js/zulip.js index 9a63e3a200..22ac35c93b 100644 --- a/static/js/zulip.js +++ b/static/js/zulip.js @@ -392,7 +392,9 @@ function mark_messages_as_read(messages, options) { unread_messages_read_in_narrow = true; } - send_read(message); + if (options.from !== "server") { + send_read(message); + } summary.maybe_mark_summarized(message); message.unread = false; @@ -927,6 +929,12 @@ function get_updates_success(data) { ui.update_starred(message_id, new_value); }); break; + case 'read': + var msgs_to_update = _.map(event.messages, function (message_id) { + return msg_metadata_cache[message_id]; + }); + mark_messages_as_read(msgs_to_update, {from: "server"}); + break; } break; case 'referral':