From b23ed923d6cac195897244661f26aa3976bb650f Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 14 Mar 2014 20:38:05 +0000 Subject: fix of sending messages to subs in stdchat & scriver git-svn-id: http://svn.miranda-ng.org/main/trunk@8605 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Scriver/src/globals.cpp | 12 +++++++----- src/core/stdchat/src/main.cpp | 10 +++++----- src/core/stdmsg/src/commonheaders.h | 1 + src/core/stdmsg/src/globals.cpp | 6 +++++- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/plugins/Scriver/src/globals.cpp b/plugins/Scriver/src/globals.cpp index 51b2afb776..dc06318c27 100644 --- a/plugins/Scriver/src/globals.cpp +++ b/plugins/Scriver/src/globals.cpp @@ -399,21 +399,23 @@ static int ackevent(WPARAM wParam, LPARAM lParam) if (pAck->type != ACKTYPE_MESSAGE) return 0; - ACKDATA *ack = (ACKDATA*)lParam; - MessageSendQueueItem *item = FindSendQueueItem(pAck->hContact, (HANDLE)pAck->hProcess); + MCONTACT hContact = db_mc_getMeta(pAck->hContact); + if (hContact == NULL) + hContact = pAck->hContact; + MessageSendQueueItem *item = FindSendQueueItem(hContact, (HANDLE)pAck->hProcess); if (item == NULL) return 0; HWND hwndSender = item->hwndSender; - if (ack->result == ACKRESULT_FAILED) { + if (pAck->result == ACKRESULT_FAILED) { if (item->hwndErrorDlg != NULL) - item = FindOldestPendingSendQueueItem(hwndSender, pAck->hContact); + item = FindOldestPendingSendQueueItem(hwndSender, hContact); if (item != NULL && item->hwndErrorDlg == NULL) { if (hwndSender != NULL) { ErrorWindowData *ewd = (ErrorWindowData *)mir_alloc(sizeof(ErrorWindowData)); ewd->szName = GetNickname(item->hContact, item->proto); - ewd->szDescription = mir_a2t((char*)ack->lParam); + ewd->szDescription = mir_a2t((char*)pAck->lParam); ewd->szText = GetSendBufferMsg(item); ewd->hwndParent = hwndSender; ewd->queueItem = item; diff --git a/src/core/stdchat/src/main.cpp b/src/core/stdchat/src/main.cpp index 63a46a0cee..2e538b47c4 100644 --- a/src/core/stdchat/src/main.cpp +++ b/src/core/stdchat/src/main.cpp @@ -344,21 +344,21 @@ extern "C" __declspec(dllexport) int Load(void) pci->OnAddUser = OnAddUser; pci->OnNewUser = OnNewUser; pci->OnRemoveUser = OnRemoveUser; - + pci->OnAddStatus = OnAddStatus; pci->OnSetStatus = OnSetStatus; pci->OnSetTopic = OnSetTopic; - + pci->OnAddLog = OnAddLog; pci->OnClearLog = OnClearLog; - + pci->OnCreateModule = OnCreateModule; pci->OnOfflineSession = OnOfflineSession; pci->OnRemoveSession = OnRemoveSession; pci->OnRenameSession = OnRenameSession; pci->OnReplaceSession = OnReplaceSession; pci->OnDblClickSession = OnDblClickSession; - + pci->OnEventBroadcast = OnEventBroadcast; pci->OnLoadSettings = OnLoadSettings; pci->OnSetStatusBar = OnSetStatusBar; @@ -385,7 +385,7 @@ extern "C" __declspec(dllexport) int Unload(void) db_set_w(NULL, CHAT_MODULE, "SplitterY", (WORD)g_Settings.iSplitterY); db_set_dw(NULL, CHAT_MODULE, "roomx", g_Settings.iX); db_set_dw(NULL, CHAT_MODULE, "roomy", g_Settings.iY); - db_set_dw(NULL, CHAT_MODULE, "roomwidth" , g_Settings.iWidth); + db_set_dw(NULL, CHAT_MODULE, "roomwidth", g_Settings.iWidth); db_set_dw(NULL, CHAT_MODULE, "roomheight", g_Settings.iHeight); if (g_Settings.MessageBoxFont) diff --git a/src/core/stdmsg/src/commonheaders.h b/src/core/stdmsg/src/commonheaders.h index 68c2d753a0..97f5d26b89 100644 --- a/src/core/stdmsg/src/commonheaders.h +++ b/src/core/stdmsg/src/commonheaders.h @@ -65,6 +65,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include #include #include +#include #include "cmdlist.h" #include "msgs.h" diff --git a/src/core/stdmsg/src/globals.cpp b/src/core/stdmsg/src/globals.cpp index eb63672e11..56be8b56c1 100644 --- a/src/core/stdmsg/src/globals.cpp +++ b/src/core/stdmsg/src/globals.cpp @@ -133,7 +133,11 @@ static int ackevent(WPARAM wParam, LPARAM lParam) { ACKDATA *pAck = (ACKDATA *)lParam; if (pAck && pAck->type == ACKTYPE_MESSAGE) { - msgQueue_processack(pAck->hContact, (int)pAck->hProcess, pAck->result == ACKRESULT_SUCCESS, (char*)pAck->lParam); + MCONTACT hContact = db_mc_getMeta(pAck->hContact); + if (hContact == NULL) + hContact = pAck->hContact; + + msgQueue_processack(hContact, (int)pAck->hProcess, pAck->result == ACKRESULT_SUCCESS, (char*)pAck->lParam); if (pAck->result == ACKRESULT_SUCCESS) SkinPlaySound("SendMsg"); -- cgit v1.2.3