Call viewMessage only when marking as read.

This commit is contained in:
John Preston 2023-07-28 12:19:14 +04:00
parent 7d1725b339
commit 815e9d2462
2 changed files with 6 additions and 4 deletions

View File

@ -1052,6 +1052,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) {
_translateTracker->startBunch(); _translateTracker->startBunch();
auto readTill = (HistoryItem*)nullptr; auto readTill = (HistoryItem*)nullptr;
auto readContents = base::flat_set<not_null<HistoryItem*>>(); auto readContents = base::flat_set<not_null<HistoryItem*>>();
const auto markingAsViewed = _widget->markingContentsRead();
const auto guard = gsl::finally([&] { const auto guard = gsl::finally([&] {
if (_pinnedItem) { if (_pinnedItem) {
_translateTracker->add(_pinnedItem); _translateTracker->add(_pinnedItem);
@ -1060,7 +1061,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) {
if (readTill && _widget->markingMessagesRead()) { if (readTill && _widget->markingMessagesRead()) {
session().data().histories().readInboxTill(readTill); session().data().histories().readInboxTill(readTill);
} }
if (!readContents.empty() && _widget->markingContentsRead()) { if (markingAsViewed && !readContents.empty()) {
session().api().markContentsRead(readContents); session().api().markContentsRead(readContents);
} }
_userpicsCache.clear(); _userpicsCache.clear();
@ -1093,7 +1094,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) {
} else if (isUnread) { } else if (isUnread) {
readTill = item; readTill = item;
} }
if (item->hasViews()) { if (markingAsViewed && item->hasViews()) {
session().api().views().scheduleIncrement(item); session().api().views().scheduleIncrement(item);
} }
if (withReaction) { if (withReaction) {

View File

@ -2059,12 +2059,13 @@ void ListWidget::paintEvent(QPaintEvent *e) {
} }
auto readTill = (HistoryItem*)nullptr; auto readTill = (HistoryItem*)nullptr;
auto readContents = base::flat_set<not_null<HistoryItem*>>(); auto readContents = base::flat_set<not_null<HistoryItem*>>();
const auto markingAsViewed = markingMessagesRead();
const auto guard = gsl::finally([&] { const auto guard = gsl::finally([&] {
if (_translateTracker) { if (_translateTracker) {
_delegate->listAddTranslatedItems(_translateTracker.get()); _delegate->listAddTranslatedItems(_translateTracker.get());
_translateTracker->finishBunch(); _translateTracker->finishBunch();
} }
if (readTill && markingMessagesRead()) { if (markingAsViewed && readTill) {
_delegate->listMarkReadTill(readTill); _delegate->listMarkReadTill(readTill);
} }
if (!readContents.empty() && markingContentsRead()) { if (!readContents.empty() && markingContentsRead()) {
@ -2136,7 +2137,7 @@ void ListWidget::paintEvent(QPaintEvent *e) {
} else if (isUnread) { } else if (isUnread) {
readTill = item; readTill = item;
} }
if (item->hasViews()) { if (markingAsViewed && item->hasViews()) {
session->api().views().scheduleIncrement(item); session->api().views().scheduleIncrement(item);
} }
if (withReaction) { if (withReaction) {