diff options
Diffstat (limited to 'protocols/Telegram/src/groupchat.cpp')
-rw-r--r-- | protocols/Telegram/src/groupchat.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/protocols/Telegram/src/groupchat.cpp b/protocols/Telegram/src/groupchat.cpp index 99198d452e..e63f633b9c 100644 --- a/protocols/Telegram/src/groupchat.cpp +++ b/protocols/Telegram/src/groupchat.cpp @@ -244,20 +244,27 @@ void CTelegramProto::Chat_LogMenu(GCHOOK *gch) } } -INT_PTR CTelegramProto::SvcLeaveChat(WPARAM hContact, LPARAM) +///////////////////////////////////////////////////////////////////////////////////////// + +void CTelegramProto::OnLeaveChat(td::ClientManager::Response &, void *pUserInfo) { - int64_t id = GetId(hContact); - if (auto *pUser = FindUser(id)) { - pUser->m_si = nullptr; - SendQuery(new TD::leaveChat(pUser->chatId)); - } + auto *pUser = (TG_USER *)pUserInfo; wchar_t wszId[100]; - _i64tow(id, wszId, 10); + _i64tow(pUser->id, wszId, 10); if (auto *si = Chat_Find(wszId, m_szModuleName)) Chat_Terminate(si); - db_delete_contact(hContact); + db_delete_contact(pUser->hContact); +} + +INT_PTR CTelegramProto::SvcLeaveChat(WPARAM hContact, LPARAM) +{ + int64_t id = GetId(hContact); + if (auto *pUser = FindUser(id)) { + pUser->m_si = nullptr; + SendQuery(new TD::leaveChat(pUser->chatId), &CTelegramProto::OnLeaveChat, pUser); + } return 0; } |