diff --git a/Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs b/Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs index 18aa02e9d67cde..dd8e3e22121e83 100644 --- a/Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs +++ b/Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml.cs @@ -92,13 +92,18 @@ public BwoinkControl() if (a.IsPinned != b.IsPinned) return a.IsPinned ? -1 : 1; - // First, sort by unread. Any chat with unread messages appears first. We just sort based on unread - // status, not number of unread messages, so that more recent unread messages take priority. + // First, sort by unread. Any chat with unread messages appears first. var aUnread = ach.Unread > 0; var bUnread = bch.Unread > 0; if (aUnread != bUnread) return aUnread ? -1 : 1; + // Sort by recent messages during the current round. + var aRecent = a.ActiveThisRound && ach.LastMessage != DateTime.MinValue; + var bRecent = b.ActiveThisRound && bch.LastMessage != DateTime.MinValue; + if (aRecent != bRecent) + return aRecent ? -1 : 1; + // Next, sort by connection status. Any disconnected players are grouped towards the end. if (a.Connected != b.Connected) return a.Connected ? -1 : 1;