summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2011-05-04 22:52:24 +0200
committerFlorent Le Coz <louiz@louiz.org>2011-05-04 22:52:24 +0200
commitc784deea9c6a3a2d19a6bfe56d2eae92e9c901f5 (patch)
treebbc380be81733c75e23a9f1627cf68c970b40379
parenteaf9af6b2d697e497884fa22fe135e0dcf43854c (diff)
parent0029f4708276699ec656280b5731278e16c2add2 (diff)
downloadpoezio-c784deea9c6a3a2d19a6bfe56d2eae92e9c901f5.tar.gz
poezio-c784deea9c6a3a2d19a6bfe56d2eae92e9c901f5.tar.bz2
poezio-c784deea9c6a3a2d19a6bfe56d2eae92e9c901f5.tar.xz
poezio-c784deea9c6a3a2d19a6bfe56d2eae92e9c901f5.zip
Fix the paused status that was sent on /part and other inapropriate situations
-rw-r--r--src/tabs.py8
-rw-r--r--src/xhtml.py4
2 files changed, 9 insertions, 3 deletions
diff --git a/src/tabs.py b/src/tabs.py
index a1944b9c..af468d8c 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -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):
diff --git a/src/xhtml.py b/src/xhtml.py
index fee5a118..954db374 100644
--- a/src/xhtml.py
+++ b/src/xhtml.py
@@ -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