From c6e39309cf6b19b111175f16b6e17b3a0cc55496 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <philipp@hoerist.com>
Date: Mon, 26 Feb 2018 20:49:01 +0100
Subject: [PATCH] Use MessageSentEvent to print to ChatControl

Its later than StanzaMessageOutgoingEvent, this allows encryption
Plugins to not return the encrypted payload immediatly.
For example encrypting may take some time because a password is needed
or the load has to be encrypted in another Thread.
---
 gajim/chat_control.py      | 4 ++--
 gajim/common/connection.py | 5 +----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/gajim/chat_control.py b/gajim/chat_control.py
index c0b01f2d6..560e73b95 100644
--- a/gajim/chat_control.py
+++ b/gajim/chat_control.py
@@ -238,7 +238,7 @@ class ChatControl(ChatControlBase):
             self._nec_chatstate_received)
         app.ged.register_event_handler('caps-received', ged.GUI1,
             self._nec_caps_received)
-        app.ged.register_event_handler('stanza-message-outgoing', ged.OUT_POSTCORE,
+        app.ged.register_event_handler('message-sent', ged.OUT_POSTCORE,
             self._message_sent)
         app.ged.register_event_handler(
             'mam-decrypted-message-received',
@@ -1160,7 +1160,7 @@ class ChatControl(ChatControlBase):
             self._nec_chatstate_received)
         app.ged.remove_event_handler('caps-received', ged.GUI1,
             self._nec_caps_received)
-        app.ged.remove_event_handler('stanza-message-outgoing', ged.OUT_POSTCORE,
+        app.ged.remove_event_handler('message-sent', ged.OUT_POSTCORE,
             self._message_sent)
 
         self.unsubscribe_events()
diff --git a/gajim/common/connection.py b/gajim/common/connection.py
index cc904c33f..4cc05f3fe 100644
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -2075,10 +2075,7 @@ class Connection(CommonConnection, ConnectionHandlers):
         obj.timestamp = time.time()
         obj.stanza_id = self.connection.send(obj.msg_iq, now=obj.now)
 
-        app.nec.push_incoming_event(MessageSentEvent(
-            None, conn=self, jid=obj.jid, message=obj.message, keyID=obj.keyID,
-            chatstate=obj.chatstate, automatic_message=obj.automatic_message,
-            stanza_id=obj.stanza_id, additional_data=obj.additional_data))
+        app.nec.push_incoming_event(MessageSentEvent(None, **vars(obj)))
 
         if isinstance(obj.jid, list):
             for j in obj.jid: