diff options
author | George Hazan <ghazan@miranda.im> | 2023-02-22 17:02:52 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-02-22 17:02:52 +0300 |
commit | a14e6388fd3266c6815a4ebaad3a942896c3e80a (patch) | |
tree | 84147df60f4be482f3c5074ce1f8adcdbf46b4a2 /src | |
parent | 061a20a9cf305cf5fabe2a35b7d8a86eb8d6b154 (diff) |
if one needs to remove a chat's contact, just remove it and don't fuck my brain
Diffstat (limited to 'src')
-rw-r--r-- | src/mir_app/src/chat.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/chat_manager.cpp | 7 | ||||
-rw-r--r-- | src/mir_app/src/chat_svc.cpp | 13 | ||||
-rw-r--r-- | src/mir_app/src/mir_app.def | 4 | ||||
-rw-r--r-- | src/mir_app/src/mir_app64.def | 4 |
5 files changed, 13 insertions, 17 deletions
diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h index d36a72af71..baa328fd99 100644 --- a/src/mir_app/src/chat.h +++ b/src/mir_app/src/chat.h @@ -68,7 +68,7 @@ MODULEINFO* MM_FindModule(const char *pszModule); BOOL SM_AddEvent(SESSION_INFO *si, GCEVENT *gce, bool bIsHighlighted);
BOOL SM_ChangeNick(SESSION_INFO *si, GCEVENT *gce);
-void SM_FreeSession(SESSION_INFO *si, bool bRemoveContact = false);
+void SM_FreeSession(SESSION_INFO *si);
char* SM_GetUsers(SESSION_INFO *si);
BOOL SM_GiveStatus(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszStatus);
void SM_RemoveAll(void);
diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp index dc6e7aaa1b..400eb08aca 100644 --- a/src/mir_app/src/chat_manager.cpp +++ b/src/mir_app/src/chat_manager.cpp @@ -163,7 +163,7 @@ static SESSION_INFO* SM_CreateSession(void) return new SESSION_INFO();
}
-void SM_FreeSession(SESSION_INFO *si, bool bRemoveContact)
+void SM_FreeSession(SESSION_INFO *si)
{
if (g_clistApi.pfnGetEvent(si->hContact, 0))
g_clistApi.pfnRemoveEvent(si->hContact, GC_FAKE_EVENT);
@@ -175,9 +175,6 @@ void SM_FreeSession(SESSION_INFO *si, bool bRemoveContact) Chat_DoEventHook(si, GC_SESSION_TERMINATE, nullptr, nullptr, (INT_PTR)si->pItemData);
- if (si->hContact && bRemoveContact)
- db_delete_contact(si->hContact);
-
// contact may have been deleted here already, since function may be called after deleting
// contact so the handle may be invalid, therefore db_get_b shall return 0
if (si->hContact && Contact::IsGroupChat(si->hContact, si->pszModule)) {
@@ -411,7 +408,7 @@ BOOL SM_ChangeNick(SESSION_INFO *si, GCEVENT *gce) void SM_RemoveAll(void)
{
for (auto &it : g_arSessions.rev_iter()) {
- SM_FreeSession(it, false);
+ SM_FreeSession(it);
g_arSessions.removeItem(&it);
}
}
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp index 0731fb09b4..47ad6d4954 100644 --- a/src/mir_app/src/chat_svc.cpp +++ b/src/mir_app/src/chat_svc.cpp @@ -373,7 +373,6 @@ struct ChatTerminateParam {
const char *pszModule;
SESSION_INFO *si;
- bool bRemoveContact;
};
static INT_PTR __stdcall stubRoomTerminate(void *param)
@@ -381,7 +380,7 @@ static INT_PTR __stdcall stubRoomTerminate(void *param) ChatTerminateParam *p = (ChatTerminateParam*)param;
if (p->si) {
g_arSessions.remove(p->si);
- SM_FreeSession(p->si, p->bRemoveContact);
+ SM_FreeSession(p->si);
}
else {
if (p->pszModule == nullptr)
@@ -390,23 +389,23 @@ static INT_PTR __stdcall stubRoomTerminate(void *param) // remove all sessions with matching module name
for (auto &si : g_arSessions.rev_iter())
if (si->iType != GCW_SERVER && !mir_strcmpi(si->pszModule, p->pszModule))
- SM_FreeSession(g_arSessions.removeItem(&si), p->bRemoveContact);
+ SM_FreeSession(g_arSessions.removeItem(&si));
}
return TRUE;
}
-MIR_APP_DLL(int) Chat_Terminate(const char *szModule, bool bRemoveContact)
+MIR_APP_DLL(int) Chat_Terminate(const char *szModule)
{
- ChatTerminateParam param = { szModule, 0, bRemoveContact };
+ ChatTerminateParam param = { szModule, 0 };
return CallFunctionSync(stubRoomTerminate, ¶m);
}
-MIR_APP_DLL(int) Chat_Terminate(SESSION_INFO *si, bool bRemoveContact)
+MIR_APP_DLL(int) Chat_Terminate(SESSION_INFO *si)
{
if (!g_arSessions.find(si))
return GC_EVENT_ERROR;
- ChatTerminateParam param = { 0, si, bRemoveContact };
+ ChatTerminateParam param = { 0, si };
return CallFunctionSync(stubRoomTerminate, ¶m);
}
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index bca07ef01d..e9f04abf2f 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -814,8 +814,8 @@ Srmm_CreateHotkey @886 NONAME ?Chat_SetStatusEx@@YGHPBDHPB_W@Z @929 NONAME
?Chat_SetStatusbarText@@YGHPAUSESSION_INFO@@PB_W@Z @930 NONAME
?Chat_SetUserInfo@@YGHPAUSESSION_INFO@@PAX@Z @931 NONAME
-?Chat_Terminate@@YGHPAUSESSION_INFO@@_N@Z @932 NONAME
-?Chat_Terminate@@YGHPBD_N@Z @933 NONAME
+?Chat_Terminate@@YGHPAUSESSION_INFO@@@Z @932 NONAME
+?Chat_Terminate@@YGHPBD@Z @933 NONAME
?Chat_Control@@YGHPBDH@Z @934 NONAME
?UpdateChatLog@CSrmmBaseDialog@@IAEXXZ @935 NONAME
?OnMarkRead@PROTO_INTERFACE@@UAEXII@Z @936 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index b1ec756b7f..ba56983a07 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -814,8 +814,8 @@ Srmm_CreateHotkey @886 NONAME ?Chat_SetStatusEx@@YAHPEBDHPEB_W@Z @929 NONAME
?Chat_SetStatusbarText@@YAHPEAUSESSION_INFO@@PEB_W@Z @930 NONAME
?Chat_SetUserInfo@@YAHPEAUSESSION_INFO@@PEAX@Z @931 NONAME
-?Chat_Terminate@@YAHPEAUSESSION_INFO@@_N@Z @932 NONAME
-?Chat_Terminate@@YAHPEBD_N@Z @933 NONAME
+?Chat_Terminate@@YAHPEAUSESSION_INFO@@@Z @932 NONAME
+?Chat_Terminate@@YAHPEBD@Z @933 NONAME
?Chat_Control@@YAHPEBDH@Z @934 NONAME
?UpdateChatLog@CSrmmBaseDialog@@IEAAXXZ @935 NONAME
?OnMarkRead@PROTO_INTERFACE@@UEAAXII@Z @936 NONAME
|