From 2dafd6d5cfc612dc50b54d3b1c06e4450df6424e Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 17 May 2014 15:51:42 +0200 Subject: Only display the supported features when they change also, check the features every rejoin for PrivateTabs and refresh the window after displaying the features --- src/tabs/basetabs.py | 11 +++++++++++ src/tabs/privatetab.py | 1 + 2 files changed, 12 insertions(+) diff --git a/src/tabs/basetabs.py b/src/tabs/basetabs.py index 8aa3d0b6..44066955 100644 --- a/src/tabs/basetabs.py +++ b/src/tabs/basetabs.py @@ -714,6 +714,8 @@ class OneToOneTab(ChatTab): def __init__(self, jid=''): ChatTab.__init__(self, jid) + # Set to true once the first disco is done + self.__initial_disco = False # change this to True or False when # we know that the remote user wants chatstates, or not. # None means we don’t know yet, and we send only "active" chatstates @@ -803,10 +805,18 @@ class OneToOneTab(ChatTab): "Features check callback" features = iq['disco_info'].get_features() or [] log.debug('\n\nFEATURES:\n%s\n\n%s\n\n', iq, features) + before = ('correct' in self.commands, + self.remote_supports_attention, + self.remote_supports_receipts) correct = self._feature_correct(features) attention = self._feature_attention(features) receipts = self._feature_receipts(features) + if (correct, attention, receipts) == before and self.__initial_disco: + return + else: + self.__initial_disco = True + features = [] if correct: features.append(_('message correction (/correct)')) @@ -826,5 +836,6 @@ class OneToOneTab(ChatTab): color = dump_tuple(get_theme().COLOR_INFORMATION_TEXT) msg = msg % (color, features_str) self.add_message(msg, typ=0) + self.core.refresh_window() diff --git a/src/tabs/privatetab.py b/src/tabs/privatetab.py index 6ab06744..b68225cf 100644 --- a/src/tabs/privatetab.py +++ b/src/tabs/privatetab.py @@ -331,6 +331,7 @@ class PrivateTab(OneToOneTab): The user (or at least someone with the same nick) came back in the MUC """ self.activate() + self.check_features() tab = self.core.get_tab_by_name(safeJID(self.name).bare, MucTab) color = 3 if tab and config.get_by_tabname('display_user_color_in_join_part', '', self.general_jid, True): -- cgit v1.2.3