summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-03-29 10:42:25 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-03-29 10:42:25 +0300
commit0b942877182ed44ad8cb064118d1468e21a89b6b (patch)
tree9f612563ca15182e189c05c32e06fe81cefa3bcf /plugins
parent70493eb6f107a6b910705fd5666b9557a83471d1 (diff)
fix: reply ids are not written for the outgoing messages
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Scriver/src/globals.cpp5
-rw-r--r--plugins/Scriver/src/msgutils.cpp1
-rw-r--r--plugins/Scriver/src/sendqueue.h1
-rw-r--r--plugins/TabSRMM/src/sendqueue.cpp5
4 files changed, 12 insertions, 0 deletions
diff --git a/plugins/Scriver/src/globals.cpp b/plugins/Scriver/src/globals.cpp
index 6ec8c203bd..406d85b751 100644
--- a/plugins/Scriver/src/globals.cpp
+++ b/plugins/Scriver/src/globals.cpp
@@ -123,6 +123,7 @@ static int ackevent(WPARAM, LPARAM lParam)
return 0;
}
+ char buf[100];
hContact = (db_mc_isMeta(hContact)) ? db_mc_getSrmmSub(item->hContact) : item->hContact;
DBEVENTINFO dbei = {};
@@ -133,6 +134,10 @@ static int ackevent(WPARAM, LPARAM lParam)
dbei.cbBlob = (int)mir_strlen(item->sendBuffer) + 1;
dbei.pBlob = item->sendBuffer;
dbei.szId = (char *)pAck->lParam;
+ if (item->hReplyEvent) {
+ itoa(item->hReplyEvent, buf, 10);
+ dbei.szReplyId = buf;
+ }
MessageWindowEvent evt = { item->hSendId, hContact, &dbei };
NotifyEventHooks(g_chatApi.hevPreCreate, 0, (LPARAM)&evt);
diff --git a/plugins/Scriver/src/msgutils.cpp b/plugins/Scriver/src/msgutils.cpp
index 9167a4f3dd..5bfc286581 100644
--- a/plugins/Scriver/src/msgutils.cpp
+++ b/plugins/Scriver/src/msgutils.cpp
@@ -260,6 +260,7 @@ void CMsgDialog::MessageSend(const SendQueue::Item &msi)
item->hContact = m_hContact;
item->proto = mir_strdup(m_szProto);
item->flags = msi.flags;
+ item->hReplyEvent = m_hQuoteEvent;
item->sendBufferSize = msi.sendBufferSize;
item->sendBuffer = mir_strndup(msi.sendBuffer, msi.sendBufferSize);
SendQueue::SendItem(item);
diff --git a/plugins/Scriver/src/sendqueue.h b/plugins/Scriver/src/sendqueue.h
index 0fc3658678..a99088628f 100644
--- a/plugins/Scriver/src/sendqueue.h
+++ b/plugins/Scriver/src/sendqueue.h
@@ -36,6 +36,7 @@ namespace SendQueue
CMsgDialog *pDlg;
MCONTACT hContact;
+ MEVENT hReplyEvent;
char *proto;
int hSendId;
int timeout;
diff --git a/plugins/TabSRMM/src/sendqueue.cpp b/plugins/TabSRMM/src/sendqueue.cpp
index fe4d158e73..8bb84faa2c 100644
--- a/plugins/TabSRMM/src/sendqueue.cpp
+++ b/plugins/TabSRMM/src/sendqueue.cpp
@@ -457,6 +457,7 @@ int SendQueue::ackMessage(CMsgDialog *dat, WPARAM wParam, LPARAM lParam)
return 0;
}
+ char buf[100];
DBEVENTINFO dbei = {};
dbei.eventType = EVENTTYPE_MESSAGE;
dbei.flags = DBEF_SENT | DBEF_UTF;
@@ -475,6 +476,10 @@ int SendQueue::ackMessage(CMsgDialog *dat, WPARAM wParam, LPARAM lParam)
dbei.flags |= DBEF_RTL;
dbei.pBlob = job.szSendBuffer;
dbei.szId = (char *)ack->lParam;
+ if (job.hEvent) {
+ itoa(job.hEvent, buf, 10);
+ dbei.szReplyId = buf;
+ }
MessageWindowEvent evt = { job.iSendId, job.hContact, &dbei };
NotifyEventHooks(g_chatApi.hevPreCreate, 0, (LPARAM)&evt);