diff --git a/client/js/socket-events/msg.js b/client/js/socket-events/msg.js index a576451f..840fe10b 100644 --- a/client/js/socket-events/msg.js +++ b/client/js/socket-events/msg.js @@ -61,6 +61,11 @@ function processReceivedMessage(data) { .appendTo(container); } + // Clear unread/highlight counter if self-message + if (data.msg.self) { + sidebar.find("[data-target='" + target + "'] .badge").removeClass("highlight").empty(); + } + // Message arrived in a non active channel, trim it to 100 messages if (activeChannelId !== targetId && container.find(".msg").slice(0, -100).remove().length) { channel.find(".show-more").addClass("show"); diff --git a/src/models/chan.js b/src/models/chan.js index efb28738..8dacc682 100644 --- a/src/models/chan.js +++ b/src/models/chan.js @@ -72,7 +72,11 @@ Chan.prototype.pushMessage = function(client, msg, increasesUnread) { } } - if (!msg.self && !isOpen) { + if (msg.self) { + // reset counters/markers when receiving self-/echo-message + this.firstUnread = 0; + this.highlight = 0; + } else if (!isOpen) { if (!this.firstUnread) { this.firstUnread = msg.id; }