From 8896e33d65a12c41c1046678c157796353f50fe4 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Fri, 20 May 2011 22:36:10 +0200
Subject: [PATCH] send message to the correct jid

---
 src/chat_control.py    | 15 ++++++++-------
 src/message_control.py |  3 ++-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/chat_control.py b/src/chat_control.py
index a3ebd792a5..ead468ba90 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -864,10 +864,11 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
         label = self.get_seclabel()
 
         gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
-            account=self.account, message=message, keyID=keyID, type_=type_,
-            chatstate=chatstate, msg_id=msg_id, composing_xep=composing_xep,
-            resource=resource, user_nick=self.user_nick, xhtml=xhtml,
-            label=label, callback=callback, callback_args= callback_args))
+            account=self.account, jid=self.contact.jid, message=message,
+            keyID=keyID, type_=type_, chatstate=chatstate, msg_id=msg_id,
+            composing_xep=composing_xep, resource=resource,
+            user_nick=self.user_nick, xhtml=xhtml, label=label,
+            callback=callback, callback_args= callback_args))
 
         # Record the history of sent messages
         self.save_message(message, 'sent')
@@ -2629,13 +2630,13 @@ class ChatControl(ChatControlBase):
         if contact.our_chatstate == 'inactive' and state == 'composing':
             # go active before
             gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
-                account=self.account, chatstate='active'))
+                account=self.account, jid=self.contact.jid, chatstate='active'))
             contact.our_chatstate = 'active'
             self.reset_kbd_mouse_timeout_vars()
 
         gajim.nec.push_outgoing_event(MessageOutgoingEvent(None,
-            account=self.account, chatstate=state, msg_id=contact.msg_id,
-            composing_xep=contact.composing_xep))
+            account=self.account, jid=self.contact.jid, chatstate=state,
+            msg_id=contact.msg_id, composing_xep=contact.composing_xep))
 
         contact.our_chatstate = state
         if contact.our_chatstate == 'active':
diff --git a/src/message_control.py b/src/message_control.py
index 14efb42daf..d265e57687 100644
--- a/src/message_control.py
+++ b/src/message_control.py
@@ -224,8 +224,9 @@ class MessageControl(object):
         # Doesn't return None if error
         if obj.account != self.account:
             return
+        if self.contact.jid != obj.jid:
+            return
 
-        obj.jid = self.contact.jid
         obj.message = helpers.remove_invalid_xml_chars(obj.message)
         obj.original_message = obj.message
 
-- 
GitLab