From dafb182a0f763f9d2a3bc77473ddd6ce2c2e19a8 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Wed, 19 Apr 2006 10:07:47 +0000
Subject: [PATCH] when a contact change his sub (from -> both) redraw it in
 correct group

---
 src/gajim.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gajim.py b/src/gajim.py
index aaecaa5c84..5c87a1ef80 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -988,6 +988,11 @@ class Interface:
 			gajim.contacts.add_contact(account, contact)
 			self.roster.add_contact_to_roster(jid, account)
 		else:
+			re_add = False
+			# if sub changed: remove and re-add, maybe observer status changed
+			if contacts[0].sub != sub:
+				self.roster.remove_contact(contacts[0], account)
+				re_add = True
 			for contact in contacts:
 				if not name:
 					name = ''
@@ -996,6 +1001,8 @@ class Interface:
 				contact.ask = ask
 				if groups:
 					contact.groups = groups
+			if re_add:
+				self.roster.add_contact_to_roster(jid, account)
 		self.roster.draw_contact(jid, account)
 		if self.remote_ctrl:
 			self.remote_ctrl.raise_signal('RosterInfo', (account, array))
-- 
GitLab