From 2e02aa326a7002281bba81377d218d0f87edc484 Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Thu, 2 Jul 2026 18:21:26 +0300 Subject: [PATCH] fix: TLL messages destruction https://github.com/AyuGram/AyuGramDesktop/pull/384 https://github.com/AyuGram/AyuGramDesktop/issues/300 --- Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp | 3 +++ Telegram/SourceFiles/data/data_session.cpp | 3 --- Telegram/SourceFiles/history/history_item.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) 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 {