From 815e9d246203a84a814d90bdc21a0dbe94c6c84e Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 28 Jul 2023 12:19:14 +0400 Subject: [PATCH] Call viewMessage only when marking as read. --- Telegram/SourceFiles/history/history_inner_widget.cpp | 5 +++-- .../SourceFiles/history/view/history_view_list_widget.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 5074219da..eedd0b81c 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -1052,6 +1052,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) { _translateTracker->startBunch(); auto readTill = (HistoryItem*)nullptr; auto readContents = base::flat_set>(); + const auto markingAsViewed = _widget->markingContentsRead(); const auto guard = gsl::finally([&] { if (_pinnedItem) { _translateTracker->add(_pinnedItem); @@ -1060,7 +1061,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) { if (readTill && _widget->markingMessagesRead()) { session().data().histories().readInboxTill(readTill); } - if (!readContents.empty() && _widget->markingContentsRead()) { + if (markingAsViewed && !readContents.empty()) { session().api().markContentsRead(readContents); } _userpicsCache.clear(); @@ -1093,7 +1094,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) { } else if (isUnread) { readTill = item; } - if (item->hasViews()) { + if (markingAsViewed && item->hasViews()) { session().api().views().scheduleIncrement(item); } if (withReaction) { diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 5903fa94b..1e2648125 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -2059,12 +2059,13 @@ void ListWidget::paintEvent(QPaintEvent *e) { } auto readTill = (HistoryItem*)nullptr; auto readContents = base::flat_set>(); + const auto markingAsViewed = markingMessagesRead(); const auto guard = gsl::finally([&] { if (_translateTracker) { _delegate->listAddTranslatedItems(_translateTracker.get()); _translateTracker->finishBunch(); } - if (readTill && markingMessagesRead()) { + if (markingAsViewed && readTill) { _delegate->listMarkReadTill(readTill); } if (!readContents.empty() && markingContentsRead()) { @@ -2136,7 +2137,7 @@ void ListWidget::paintEvent(QPaintEvent *e) { } else if (isUnread) { readTill = item; } - if (item->hasViews()) { + if (markingAsViewed && item->hasViews()) { session->api().views().scheduleIncrement(item); } if (withReaction) {