diff --git a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp index d95ee87391..111a41af0d 100644 --- a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp +++ b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp @@ -728,6 +728,9 @@ void processMessageDelete(not_null item) { if (!isMessageSavable(item)) { item->destroy(); } else { + if (item->ttlDestroyAt() > 0) { + item->applyTTL(0); + } item->setDeleted(); AyuMessages::addDeletedMessage(item); } diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp index 2498bfc6df..f66fc4a4e3 100644 --- a/Telegram/SourceFiles/data/data_session.cpp +++ b/Telegram/SourceFiles/data/data_session.cpp @@ -2904,9 +2904,6 @@ void Session::checkTTLs() { auto itemsToProcess = toBeRemoved | ranges::to_vector; for (const auto &item : itemsToProcess) { - // remove message from `_ttlMessages` to avoid calling this method infinitely - item->applyTTL(0); - processMessageDelete(item); } } else { diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 2a84434d4e..965b0d41a5 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -3914,7 +3914,7 @@ void HistoryItem::applyTTL(TimeId destroyAt) { const auto session = &_history->session(); crl::on_main(session, [session, id = fullId()]{ if (const auto item = session->data().message(id)) { - item->destroy(); + processMessageDelete(item); } }); } else {