2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-10-11 13:47:24 +00:00

Fix marking read in new forum layout.

This commit is contained in:
John Preston
2025-08-08 20:23:51 +04:00
parent 60f6ea3252
commit 87cdc22990
5 changed files with 105 additions and 11 deletions

View File

@@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h"
#include "data/data_forum_icons.h"
#include "data/data_forum_topic.h"
#include "data/data_replies_list.h"
#include "data/notify/data_notify_settings.h"
#include "history/history.h"
#include "history/history_item.h"
@@ -276,6 +277,33 @@ Thread *Forum::activeSubsectionThread() const {
return _activeSubsectionTopic;
}
void Forum::markUnreadCountsUnknown(MsgId readTillId) {
if (!channel()->useSubsectionTabs()) {
return;
}
for (const auto &[rootId, topic] : _topics) {
const auto replies = topic->replies();
if (replies->unreadCountCurrent() > 0) {
replies->setInboxReadTill(readTillId, std::nullopt);
}
}
}
void Forum::updateUnreadCounts(
MsgId readTillId,
const base::flat_map<not_null<ForumTopic*>, int> &counts) {
if (!channel()->useSubsectionTabs()) {
return;
}
for (const auto &[rootId, topic] : _topics) {
const auto raw = topic.get();
const auto replies = raw->replies();
const auto i = counts.find(raw);
const auto count = (i != end(counts)) ? i->second : 0;
replies->setInboxReadTill(readTillId, count);
}
}
void Forum::listMessageChanged(HistoryItem *from, HistoryItem *to) {
if (from || to) {
reorderLastTopics();