From 241f666bc6f6c17eb8fbe605da562294cb0aa6b3 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Thu, 23 Dec 2010 17:51:26 +0100 Subject: [PATCH] redraw chat buttons when we get caps information. Fixes #6114 --- src/chat_control.py | 9 +++++++++ src/groupchat_control.py | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/chat_control.py b/src/chat_control.py index b6fbadc20..055dfd6ba 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -1605,6 +1605,8 @@ class ChatControl(ChatControlBase): self._nec_failed_decrypt) gajim.ged.register_event_handler('chatstate-received', ged.GUI1, self._nec_chatstate_received) + gajim.ged.register_event_handler('caps-received', ged.GUI1, + self._nec_caps_received) # PluginSystem: adding GUI extension point for this ChatControl # instance object @@ -2597,6 +2599,8 @@ class ChatControl(ChatControlBase): self._nec_failed_decrypt) gajim.ged.remove_event_handler('chatstate-received', ged.GUI1, self._nec_chatstate_received) + gajim.ged.remove_event_handler('caps-received', ged.GUI1, + self._nec_caps_received) self.send_chatstate('gone', self.contact) self.contact.chatstate = None @@ -2673,6 +2677,11 @@ class ChatControl(ChatControlBase): # update chatstate in tab for this chat self.parent_win.redraw_tab(self, self.contact.chatstate) + def _nec_caps_received(self, obj): + if obj.conn.name != self.account or obj.jid != self.contact.jid: + return + self.update_ui() + def set_control_active(self, state): ChatControlBase.set_control_active(self, state) # send chatstate inactive to the one we're leaving diff --git a/src/groupchat_control.py b/src/groupchat_control.py index 3af4ad402..05459bc9d 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -149,18 +149,18 @@ class PrivateChatControl(ChatControl): ChatControl.__init__(self, parent_win, contact, account, session) self.TYPE_ID = 'pm' gajim.ged.register_event_handler('caps-received', ged.GUI1, - self._nec_caps_received) + self._nec_caps_received_pm) gajim.ged.register_event_handler('gc-presence-received', ged.GUI1, self._nec_gc_presence_received) def shutdown(self): super(PrivateChatControl, self).shutdown() gajim.ged.remove_event_handler('caps-received', ged.GUI1, - self._nec_caps_received) + self._nec_caps_received_pm) gajim.ged.remove_event_handler('gc-presence-received', ged.GUI1, self._nec_gc_presence_received) - def _nec_caps_received(self, obj): + def _nec_caps_received_pm(self, obj): if obj.conn.name != self.account or \ obj.fjid != self.gc_contact.get_full_jid(): return