Fix the paused status that was sent on /part and other inapropriate situations
This commit is contained in:
commit
c784deea9c
2 changed files with 9 additions and 3 deletions
|
@ -287,6 +287,7 @@ class ChatTab(Tab):
|
|||
if txt.startswith('//'):
|
||||
txt = txt[1:]
|
||||
self.command_say(txt)
|
||||
self.cancel_paused_delay()
|
||||
|
||||
def send_chat_state(self, state):
|
||||
"""
|
||||
|
@ -305,6 +306,7 @@ class ChatTab(Tab):
|
|||
if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates:
|
||||
if not empty_before and empty_after:
|
||||
self.send_chat_state("active")
|
||||
self.cancel_paused_delay()
|
||||
elif (empty_before or (self.timed_event_paused is not None and not self.timed_event_paused())) and not empty_after:
|
||||
self.send_chat_state("composing")
|
||||
|
||||
|
@ -1483,22 +1485,22 @@ class ConversationTab(ChatTab):
|
|||
self.input.do_command(key)
|
||||
empty_after = self.input.get_text() == '' or (self.input.get_text().startswith('/') and not self.input.get_text().startswith('//'))
|
||||
self.send_composing_chat_state(empty_before, empty_after)
|
||||
self.set_paused_delay(empty_before and not empty_after)
|
||||
if not empty_before and empty_after:
|
||||
self.cancel_paused_delay()
|
||||
self.set_paused_delay(empty_before and not empty_after)
|
||||
return False
|
||||
|
||||
def on_lose_focus(self):
|
||||
self.set_color_state(theme.COLOR_TAB_NORMAL)
|
||||
self.text_win.remove_line_separator()
|
||||
self.text_win.add_line_separator()
|
||||
if config.get('send_chat_states', 'true') == 'true' and not self.input.get_text():
|
||||
if config.get('send_chat_states', 'true') == 'true' and not self.input.get_text() or not self.input.get_text().startswith('//'):
|
||||
self.send_chat_state('inactive')
|
||||
|
||||
def on_gain_focus(self):
|
||||
self.set_color_state(theme.COLOR_TAB_CURRENT)
|
||||
curses.curs_set(1)
|
||||
if config.get('send_chat_states', 'true') == 'true' and not self.input.get_text():
|
||||
if config.get('send_chat_states', 'true') == 'true' and not self.input.get_text() or not self.input.get_text().startswith('//'):
|
||||
self.send_chat_state('active')
|
||||
|
||||
def on_scroll_up(self):
|
||||
|
|
|
@ -27,6 +27,7 @@ import re
|
|||
import subprocess
|
||||
from sleekxmpp.xmlstream import ET
|
||||
from xml.etree.ElementTree import ElementTree
|
||||
from sys import version_info
|
||||
|
||||
from config import config
|
||||
import logging
|
||||
|
@ -82,8 +83,11 @@ def convert_links_to_plaintext(text):
|
|||
parent.text += link_text
|
||||
parent.remove(child)
|
||||
previous_child = child
|
||||
if version_info.minor <= 1:
|
||||
return ET.tostring(xml.getroot())
|
||||
return ET.tostring(xml.getroot(), encoding=str)
|
||||
|
||||
|
||||
def clean_text(string):
|
||||
"""
|
||||
Remove all \x19 from the string
|
||||
|
|
Loading…
Reference in a new issue