summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core.py4
-rw-r--r--src/tabs/conversationtab.py1
-rw-r--r--src/tabs/privatetab.py1
3 files changed, 6 insertions, 0 deletions
diff --git a/src/core.py b/src/core.py
index ac0c1722..b7f6ea17 100644
--- a/src/core.py
+++ b/src/core.py
@@ -3494,6 +3494,10 @@ class Core(object):
return
roster.modified()
contact.error = presence['error']['type'] + ': ' + presence['error']['condition']
+ # reset chat states status on presence error
+ tab = self.get_tab_by_name(jid.full, tabs.ConversationTab)
+ if tab:
+ tab.remote_wants_chatstates = None
def on_got_offline(self, presence):
"""
diff --git a/src/tabs/conversationtab.py b/src/tabs/conversationtab.py
index f999ddcd..ce60689c 100644
--- a/src/tabs/conversationtab.py
+++ b/src/tabs/conversationtab.py
@@ -406,6 +406,7 @@ class DynamicConversationTab(ConversationTab):
Unlock the tab from a resource. It is now “associated” with the bare
jid.
"""
+ self.remote_wants_chatstates = None
if self.locked_resource != None:
self.locked_resource = None
diff --git a/src/tabs/privatetab.py b/src/tabs/privatetab.py
index 5599ec45..5b9d1cee 100644
--- a/src/tabs/privatetab.py
+++ b/src/tabs/privatetab.py
@@ -357,6 +357,7 @@ class PrivateTab(ChatTab):
def deactivate(self, reason=None):
self.on = False
+ self.remote_wants_chatstates = None
if reason:
self.add_message(txt=reason, typ=2)