From d7c60041eaa1b2c912381329dc4ac2f6de1989af Mon Sep 17 00:00:00 2001
From: Julien Pivotto <roidelapluie@esquimaux.be>
Date: Thu, 7 Aug 2008 15:27:02 +0000
Subject: [PATCH] Don't print twice "ping? pong" when using /ping command in a
 pm.

---
 src/gajim.py | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/gajim.py b/src/gajim.py
index 06b2e7cd22..134152b162 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -1870,7 +1870,12 @@ class Interface:
 			gajim.connections[account].change_status('offline','')
 
 	def handle_event_ping_sent(self, account, contact):
-		for jid in [contact.jid, contact.get_full_jid()]:
+		if contact.jid == contact.get_full_jid():
+			# If contact is a groupchat user
+			jids = [contact.jid]
+		else:
+			jids = [contact.jid, contact.get_full_jid()]		
+		for jid in jids:
 			ctrl = self.msg_win_mgr.get_control(jid, account)
 			if ctrl:
 				ctrl.print_conversation(_('Ping?'), 'status')
@@ -1878,14 +1883,23 @@ class Interface:
 	def handle_event_ping_reply(self, account, data):
 		contact = data[0]
 		seconds = data[1]
-
-		for jid in [contact.jid, contact.get_full_jid()]:
+		if contact.jid == contact.get_full_jid():
+			# If contact is a groupchat user
+			jids = [contact.jid]
+		else:
+			jids = [contact.jid, contact.get_full_jid()]
+		for jid in jids:
 			ctrl = self.msg_win_mgr.get_control(jid, account)
 			if ctrl:
 				ctrl.print_conversation(_('Pong! (%s s.)') % seconds, 'status')
 
 	def handle_event_ping_error(self, account, contact):
-		for jid in [contact.jid, contact.get_full_jid()]:
+		if contact.jid == contact.get_full_jid():
+			# If contact is a groupchat user
+			jids = [contact.jid]
+		else:
+			jids = [contact.jid, contact.get_full_jid()]
+		for jid in jids:
 			ctrl = self.msg_win_mgr.get_control(jid, account)
 			if ctrl:
 				ctrl.print_conversation(_('Error.'), 'status')
-- 
GitLab