summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/m_chat_int.h19
-rw-r--r--libs/win32/mir_app.libbin260212 -> 261834 bytes
-rw-r--r--libs/win64/mir_app.libbin258958 -> 260832 bytes
-rw-r--r--protocols/JabberG/src/jabber_thread.cpp2
-rw-r--r--src/mir_app/src/chat_svc.cpp7
-rw-r--r--src/mir_app/src/mir_app.def3
-rw-r--r--src/mir_app/src/mir_app64.def3
7 files changed, 23 insertions, 11 deletions
diff --git a/include/m_chat_int.h b/include/m_chat_int.h
index a244af5929..319559a1ef 100644
--- a/include/m_chat_int.h
+++ b/include/m_chat_int.h
@@ -352,29 +352,32 @@ struct CHAT_MANAGER
extern MIR_APP_EXPORT CHAT_MANAGER g_chatApi;
-EXTERN_C MIR_APP_DLL(CHAT_MANAGER*) Chat_CustomizeApi(const CHAT_MANAGER_INITDATA *pData);
+MIR_APP_DLL(CHAT_MANAGER*) Chat_CustomizeApi(const CHAT_MANAGER_INITDATA *pData);
/////////////////////////////////////////////////////////////////////////////////////////
// updates options for all windows
-EXTERN_C MIR_APP_DLL(void) Chat_UpdateOptions();
+MIR_APP_DLL(void) Chat_UpdateOptions();
// runs ME_GC_EVENT with the parameters passed
-EXTERN_C MIR_APP_DLL(BOOL) Chat_DoEventHook(SESSION_INFO *si, int iType, const USERINFO *pUser, const wchar_t* pszText, INT_PTR dwItem);
+MIR_APP_DLL(BOOL) Chat_DoEventHook(SESSION_INFO *si, int iType, const USERINFO *pUser, const wchar_t* pszText, INT_PTR dwItem);
+
+// wipes chat's history
+MIR_APP_DLL(void) Chat_EmptyHistory(SESSION_INFO *si);
// creates custom popup menu for a group chat
-EXTERN_C MIR_APP_DLL(UINT) Chat_CreateMenu(HWND hwnd, HMENU hMenu, POINT pt, SESSION_INFO *si, const wchar_t *pszUID);
+MIR_APP_DLL(UINT) Chat_CreateMenu(HWND hwnd, HMENU hMenu, POINT pt, SESSION_INFO *si, const wchar_t *pszUID);
// calculates width or height of a string
-EXTERN_C MIR_APP_DLL(int) Chat_GetTextPixelSize(const wchar_t *pszText, HFONT hFont, bool bWidth);
+MIR_APP_DLL(int) Chat_GetTextPixelSize(const wchar_t *pszText, HFONT hFont, bool bWidth);
// creates a default description of a group chat event
// returns true if lin->ptszText is already utilized, you need to add it manually then otherwise
-EXTERN_C MIR_APP_DLL(bool) Chat_GetDefaultEventDescr(const SESSION_INFO *si, const LOGINFO *lin, CMStringW &res);
+MIR_APP_DLL(bool) Chat_GetDefaultEventDescr(const SESSION_INFO *si, const LOGINFO *lin, CMStringW &res);
// sets mute mode for a group chat
-EXTERN_C MIR_APP_DLL(int) Chat_IsMuted(MCONTACT hContact);
-EXTERN_C MIR_APP_DLL(void) Chat_Mute(MCONTACT hContact, int mode);
+MIR_APP_DLL(int) Chat_IsMuted(MCONTACT hContact);
+MIR_APP_DLL(void) Chat_Mute(MCONTACT hContact, int mode);
// resets filters for all session
MIR_APP_DLL(void) Chat_ReconfigureFilters();
diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib
index e28b7b6afd..7e62661a72 100644
--- a/libs/win32/mir_app.lib
+++ b/libs/win32/mir_app.lib
Binary files differ
diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib
index b543fabc91..947e6f5b77 100644
--- a/libs/win64/mir_app.lib
+++ b/libs/win64/mir_app.lib
Binary files differ
diff --git a/protocols/JabberG/src/jabber_thread.cpp b/protocols/JabberG/src/jabber_thread.cpp
index fcf189bc13..5aebee770e 100644
--- a/protocols/JabberG/src/jabber_thread.cpp
+++ b/protocols/JabberG/src/jabber_thread.cpp
@@ -268,7 +268,7 @@ void CJabberProto::ServerThread(JABBER_CONN_DATA *pParam)
LISTFOREACH(i, this, LIST_CHATROOM)
if (auto *item = ListGetItemPtrFromIndex(i)) {
if (item->si)
- item->si->arEvents.destroy();
+ Chat_EmptyHistory(item->si);
GcQuit(item, 0, nullptr);
}
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp
index e03d826320..fdc32abcc9 100644
--- a/src/mir_app/src/chat_svc.cpp
+++ b/src/mir_app/src/chat_svc.cpp
@@ -763,6 +763,13 @@ MIR_APP_DLL(int) Chat_SetUserInfo(SESSION_INFO *si, void *pItemData)
return GC_EVENT_ERROR;
}
+MIR_APP_DLL(void) Chat_EmptyHistory(SESSION_INFO *si)
+{
+ mir_cslock lck(csChat);
+ if (g_arSessions.indexOf(si) != -1)
+ si->arEvents.destroy();
+}
+
MIR_APP_DLL(void) Chat_UpdateOptions()
{
for (auto &si : g_arSessions)
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index db1745335c..d0abb0ecb0 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -346,7 +346,7 @@ Chat_DoEventHook @445 NONAME
_stubLogProc@16 @446 NONAME
_stubMessageProc@16 @447 NONAME
_stubNicklistProc@16 @448 NONAME
-Chat_GetTextPixelSize @449 NONAME
+?Chat_GetTextPixelSize@@YGHPB_WPAUHFONT__@@_N@Z @449 NONAME
?NotifyEvent@CSrmmBaseDialog@@IAEHH@Z @450 NONAME
Srmm_GetWindowData @451
?Srmm_FindWindow@@YGPAUHWND__@@I@Z @452 NONAME
@@ -874,3 +874,4 @@ Chat_IsMuted @941 NONAME
Clist_RemoveEvent @989
?Clist_GetEventByMenu@@YGPAUCListEvent@@H@Z @990 NONAME
?Clist_GetEventCount@@YGHXZ @991 NONAME
+?Chat_EmptyHistory@@YGXPAUSESSION_INFO@@@Z @992 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index cfc6f9556e..ce3a55a6fd 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -346,7 +346,7 @@ Chat_DoEventHook @445 NONAME
stubLogProc @446 NONAME
stubMessageProc @447 NONAME
stubNicklistProc @448 NONAME
-Chat_GetTextPixelSize @449 NONAME
+?Chat_GetTextPixelSize@@YAHPEB_WPEAUHFONT__@@_N@Z @449 NONAME
?NotifyEvent@CSrmmBaseDialog@@IEAAHH@Z @450 NONAME
Srmm_GetWindowData @451
?Srmm_FindWindow@@YAPEAUHWND__@@I@Z @452 NONAME
@@ -874,3 +874,4 @@ Chat_IsMuted @941 NONAME
Clist_RemoveEvent @989
?Clist_GetEventByMenu@@YAPEAUCListEvent@@H@Z @990 NONAME
?Clist_GetEventCount@@YAHXZ @991 NONAME
+?Chat_EmptyHistory@@YAXPEAUSESSION_INFO@@@Z @992 NONAME