diff options
author | mathieui <mathieui@mathieui.net> | 2014-02-01 19:10:50 +0100 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2014-02-01 19:10:50 +0100 |
commit | 7c0cf0c8beaf3f0f8a743a10e0e3963c94c14bd3 (patch) | |
tree | ae680de5339bebd0920430b6b6bd0511069088a7 /src | |
parent | 3fe044d5b89156bdc087af514d53603173eaa365 (diff) | |
download | poezio-7c0cf0c8beaf3f0f8a743a10e0e3963c94c14bd3.tar.gz poezio-7c0cf0c8beaf3f0f8a743a10e0e3963c94c14bd3.tar.bz2 poezio-7c0cf0c8beaf3f0f8a743a10e0e3963c94c14bd3.tar.xz poezio-7c0cf0c8beaf3f0f8a743a10e0e3963c94c14bd3.zip |
Fix #2441 (don’t send chatstates in a non-chatstate conv)
Also enable chatstates when we receive them from our contacts.
Diffstat (limited to 'src')
-rw-r--r-- | src/core.py | 3 | ||||
-rw-r--r-- | src/tabs.py | 12 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/core.py b/src/core.py index 766061bd..169df31f 100644 --- a/src/core.py +++ b/src/core.py @@ -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(): diff --git a/src/tabs.py b/src/tabs.py index c44b5bf0..12a3cd62 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -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): """ |