--- a/libpurple/plugins/signals-test.c Tue Jun 23 04:16:41 2015 +0200
+++ b/libpurple/plugins/signals-test.c Tue Jun 23 04:19:25 2015 +0200
@@ -692,6 +692,12 @@
+jabber_message_delivered(PurpleConnection *pc, const char *id) + purple_debug_misc("signals test", "jabber message delivered (id=%s)\n", id); /**************************************************************************
**************************************************************************/
@@ -888,6 +894,8 @@
purple_signal_connect(jabber_handle, "jabber-watched-iq", plugin,
PURPLE_CALLBACK(jabber_watched_iq), NULL);
+ purple_signal_connect(jabber_handle, "jabber-message-delivered", plugin, + PURPLE_CALLBACK(jabber_message_delivered), NULL); --- a/libpurple/protocols/jabber/jabber.c Tue Jun 23 04:16:41 2015 +0200
+++ b/libpurple/protocols/jabber/jabber.c Tue Jun 23 04:19:25 2015 +0200
@@ -4122,6 +4122,12 @@
G_TYPE_STRING, /* type */
G_TYPE_STRING, /* from */
+ purple_signal_register(protocol, "jabber-message-delivered", + purple_marshal_VOID__POINTER_POINTER, + PURPLE_TYPE_CONNECTION, + G_TYPE_STRING); /* id */ static void jabber_uninit_protocol(PurpleProtocol *protocol)
--- a/libpurple/protocols/jabber/message.c Tue Jun 23 04:16:41 2015 +0200
+++ b/libpurple/protocols/jabber/message.c Tue Jun 23 04:19:25 2015 +0200
@@ -77,6 +77,7 @@
pending_msg = (JabberMessage *) g_hash_table_lookup(pending_receipts, jm->id);
if (pending_msg != NULL) {
g_hash_table_remove(pending_receipts, jm->id);
+ purple_signal_emit(purple_connection_get_protocol(jm->js->gc), "jabber-message-delivered", jm->js->gc, jm->id);