summaryrefslogtreecommitdiff
path: root/src/tabs/basetabs.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/tabs/basetabs.py')
-rw-r--r--src/tabs/basetabs.py11
1 files changed, 11 insertions, 0 deletions
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()