From f5e8f943369e617d76686deadacfba79c172f46b Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 3 Nov 2026 13:56:33 +0100 Subject: [PATCH] Discard pending file opening events when clearing UI state --- .../app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt | 1 + tools/chatgui/src/messagelist.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt index e59e7c453..1852d88f0 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt @@ -1973,6 +1973,7 @@ class ChatViewModel : ViewModel() { /** Main, после подтверждённого join worker: убрать все ссылки на удаляемую БД и завершить её ожидающие отправки. */ fun clearState() { cancelDmStart(); _dmStartFailed.value = false; _dmOpen.value = null + openingDmFiles.clear() ++channelRefreshRevision; ++messageRefreshRevision; ++jumpRevision ++editRevision; ++replyRevision for (id in submissions.keys.toList()) submissionResult(id, false) diff --git a/tools/chatgui/src/messagelist.cpp b/tools/chatgui/src/messagelist.cpp index 4ad596e33..e22e07cbc 100644 --- a/tools/chatgui/src/messagelist.cpp +++ b/tools/chatgui/src/messagelist.cpp @@ -869,6 +869,7 @@ MessageList::MessageList(DbManager* db, AudioRecorder* recorder, QWidget *parent void MessageList::loadChannel(const QString& channelId) { QPointer prevFocus = QApplication::focusWidget(); + if (channelId.isEmpty()) m_openingDmFiles.clear(); const auto conversations = m_db && isDmChannel(channelId) ? m_db->getDmConversations() : QList(); quint64 generation = 0;