summaryrefslogtreecommitdiff
path: root/protocols/IRCG/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2023-11-11 21:24:09 +0300
committerGeorge Hazan <george.hazan@gmail.com>2023-11-11 21:24:09 +0300
commit299aa6117c3b11664893493587b4b51f85d9b5ce (patch)
tree19f9a8433be07ff5f8ed522faf2a5937d9663757 /protocols/IRCG/src
parent7acb08115f68d9533d56f5b6bd4c3dde4737d604 (diff)
fixes #3909 (Tabsrmm + IRC: same user's leaving events in chats)
Diffstat (limited to 'protocols/IRCG/src')
-rw-r--r--protocols/IRCG/src/commandmonitor.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp
index 17e705b1dc..e6abc20f30 100644
--- a/protocols/IRCG/src/commandmonitor.cpp
+++ b/protocols/IRCG/src/commandmonitor.cpp
@@ -367,7 +367,11 @@ bool CIrcProto::OnIrc_QUIT(const CIrcMessage *pmsg)
{
if (pmsg->m_bIncoming) {
CMStringW host = pmsg->prefix.sUser + L"@" + pmsg->prefix.sHost;
- DoEvent(GC_EVENT_QUIT, nullptr, pmsg->prefix.sNick, pmsg->parameters.getCount() > 0 ? pmsg->parameters[0].c_str() : nullptr, nullptr, host, NULL, true, false);
+ for (auto &si : g_chatApi.arSessions)
+ if (!mir_strcmp(si->pszModule, m_szModuleName))
+ if (g_chatApi.UM_FindUser(si, pmsg->prefix.sNick))
+ DoEvent(GC_EVENT_QUIT, si->ptszID, pmsg->prefix.sNick, pmsg->parameters.getCount() > 0 ? pmsg->parameters[0].c_str() : nullptr, nullptr, host, NULL, true, false);
+
CONTACT user = { pmsg->prefix.sNick, pmsg->prefix.sUser, pmsg->prefix.sHost, false, false, false };
CList_SetOffline(&user);
if (pmsg->prefix.sNick == m_info.sNick)