diff options
-rw-r--r-- | include/m_chat_int.h | 19 | ||||
-rw-r--r-- | libs/win32/mir_app.lib | bin | 260212 -> 261834 bytes | |||
-rw-r--r-- | libs/win64/mir_app.lib | bin | 258958 -> 260832 bytes | |||
-rw-r--r-- | protocols/JabberG/src/jabber_thread.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/chat_svc.cpp | 7 | ||||
-rw-r--r-- | src/mir_app/src/mir_app.def | 3 | ||||
-rw-r--r-- | src/mir_app/src/mir_app64.def | 3 |
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 Binary files differindex e28b7b6afd..7e62661a72 100644 --- a/libs/win32/mir_app.lib +++ b/libs/win32/mir_app.lib diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib Binary files differindex b543fabc91..947e6f5b77 100644 --- a/libs/win64/mir_app.lib +++ b/libs/win64/mir_app.lib 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
|