Commit 7c0cf0c8 authored by mathieui's avatar mathieui
Browse files

Fix #2441 (don’t send chatstates in a non-chatstate conv)

Also enable chatstates when we receive them from our contacts.
parent 3fe044d5
......@@ -3272,6 +3272,7 @@ class Core(object):
identifier=message['id'],
jid=message['from'],
typ=1)
if tab.remote_wants_chatstates is None:
if message['chat_state']:
tab.remote_wants_chatstates = True
......@@ -3317,6 +3318,7 @@ class Core(object):
tab = self.get_conversation_by_jid(message['from'], False)
if not tab:
return False
tab.remote_wants_chatstates = True
self.events.trigger('normal_chatstate', message, tab)
tab.chatstate = state
if state == 'gone' and isinstance(tab, tabs.DynamicConversationTab):
......@@ -3333,6 +3335,7 @@ class Core(object):
tab = self.get_tab_by_name(message['from'].full, tabs.PrivateTab)
if not tab:
return
tab.remote_wants_chatstates = True
self.events.trigger('private_chatstate', message, tab)
tab.chatstate = state
if tab == self.current_tab():
......
......@@ -576,11 +576,13 @@ class ChatTab(Tab):
if not isinstance(self, MucTab) or self.joined:
if state in ('active', 'inactive', 'gone') and self.inactive and not always_send:
return
msg = self.core.xmpp.make_message(self.get_dest_jid())
msg['type'] = self.message_type
msg['chat_state'] = state
self.chat_state = state
msg.send()
if config.get_by_tabname('send_chat_states', 'true', self.general_jid, True) and \
self.remote_wants_chatstates is not False:
msg = self.core.xmpp.make_message(self.get_dest_jid())
msg['type'] = self.message_type
msg['chat_state'] = state
self.chat_state = state
msg.send()
def send_composing_chat_state(self, empty_after):
"""
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment