summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core.py1
-rw-r--r--src/tabs.py1
-rw-r--r--src/windows.py13
-rw-r--r--src/xhtml.py6
4 files changed, 17 insertions, 4 deletions
diff --git a/src/core.py b/src/core.py
index 83ab0683..2ddf143d 100644
--- a/src/core.py
+++ b/src/core.py
@@ -665,6 +665,7 @@ class Core(object):
curses.curs_set(1)
curses.noecho()
curses.nonl()
+ curses.raw()
theme.init_colors()
stdscr.keypad(True)
curses.ungetch(" ") # H4X: without this, the screen is
diff --git a/src/tabs.py b/src/tabs.py
index e3bea971..b7624c2b 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -557,7 +557,6 @@ class MucTab(ChatTab):
msg = self.core.xmpp.make_message(self.get_name())
msg['type'] = 'groupchat'
msg['body'] = line
- msg['xhtml_im'] = "<body><p>coucou</p></body>"
if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False:
msg['chat_state'] = 'active'
msg.send()
diff --git a/src/windows.py b/src/windows.py
index cecd9b0d..7051bf2d 100644
--- a/src/windows.py
+++ b/src/windows.py
@@ -50,6 +50,8 @@ import wcwidth
import singleton
import collections
+from keyboard import read_char
+
Line = collections.namedtuple('Line', 'text text_offset nickname_color time nickname')
g_lock = Lock()
@@ -1065,8 +1067,10 @@ class MessageInput(Input):
"""
The input featuring history and that is being used in
Conversation, Muc and Private tabs
+ Also letting the user enter colors or other text markups
"""
history = list() # The history is common to all MessageInput
+ text_attributes = set(('b', 'o', 'u'))
def __init__(self):
Input.__init__(self)
@@ -1076,6 +1080,7 @@ class MessageInput(Input):
self.key_func["M-A"] = self.key_up
self.key_func["KEY_DOWN"] = self.key_down
self.key_func["M-B"] = self.key_down
+ self.key_func['^C'] = self.enter_attrib
def key_up(self):
"""
@@ -1092,6 +1097,14 @@ class MessageInput(Input):
self.text = MessageInput.history[self.histo_pos]
self.key_end()
+ def enter_attrib(self):
+ """
+ Read one more char (c) and add \x19c to the string
+ """
+ attr_char = read_char(self.core.stdscr)
+ if attr_char in self.text_attributes or attr_char.isdigit():
+ self.do_command('\x19%s' % attr_char)
+
def key_down(self):
"""
Get the next line in the history
diff --git a/src/xhtml.py b/src/xhtml.py
index bfdc1ef6..be09442b 100644
--- a/src/xhtml.py
+++ b/src/xhtml.py
@@ -64,7 +64,7 @@ def poezio_colors_to_html(string):
# a list of all opened elements, e.g. ['strong', 'span']
# So that we know what we need to close
opened_elements = []
- res = "<body xmlns='http://www.w3.org/1999/html'>"
+ res = "<body xmlns='http://www.w3.org/1999/html'><p>"
next_attr_char = string.find('\x19')
while next_attr_char != -1:
attr_char = string[next_attr_char+1].lower()
@@ -90,8 +90,8 @@ def poezio_colors_to_html(string):
res += string
for elem in opened_elements[::-1]:
res += '</%s>' % (elem,)
- res += "</body>"
- return res
+ res += "</p></body>"
+ return res.replace('\n', '<br />')
def shell_colors_to_poezio_colors(string):
"""