From d2669df77b81949571b7183e5f35faba41d88447 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Tue, 12 Aug 2008 08:53:09 +0000
Subject: [PATCH] fix some resource problems. see #3799

---
 src/chat_control.py | 6 ++++++
 src/gajim.py        | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/chat_control.py b/src/chat_control.py
index b31ec65fb1..18442920d6 100644
--- a/src/chat_control.py
+++ b/src/chat_control.py
@@ -1144,6 +1144,12 @@ class ChatControl(ChatControlBase):
 		if not session:
 			session = gajim.connections[self.account]. \
 				find_controlless_session(self.contact.jid)
+			if session:
+				# Don't use previous session if we want to a specific resource
+				# and it's not the same
+				j, r = gajim.get_room_and_nick_from_fjid(str(session.jid))
+				if resource and resource != r:
+					session = None
 
 		if session:
 			session.control = self
diff --git a/src/gajim.py b/src/gajim.py
index 0b774d864f..88ed340318 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -2670,7 +2670,7 @@ class Interface:
 
 		mw = self.msg_win_mgr.get_window(fjid, account)
 		if not mw:
-			mw = self.msg_win_mgr.create_window(contact, account, type_)
+			mw = self.msg_win_mgr.create_window(contact, account, type_, resource)
 
 		chat_control = ChatControl(mw, contact, account, session, resource)
 
-- 
GitLab