summaryrefslogtreecommitdiff
path: root/protocols/Telegram/src/groupchat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/src/groupchat.cpp')
-rw-r--r--protocols/Telegram/src/groupchat.cpp23
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;
}