summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2014-04-02 21:53:12 +0200
committermathieui <mathieui@mathieui.net>2014-04-02 21:53:12 +0200
commitace9fc6661d1d440d5c7a37553c4dff9fb525541 (patch)
tree3b0b19022ed60c68e9581bb570717429b30e2964
parentc9069ce623b54b660b20c217b7f1a1562d756c1a (diff)
downloadpoezio-ace9fc6661d1d440d5c7a37553c4dff9fb525541.tar.gz
poezio-ace9fc6661d1d440d5c7a37553c4dff9fb525541.tar.bz2
poezio-ace9fc6661d1d440d5c7a37553c4dff9fb525541.tar.xz
poezio-ace9fc6661d1d440d5c7a37553c4dff9fb525541.zip
Fix #1998, #2439 (reset chat state status)
-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)