diff options
author | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-09-14 22:59:40 +0000 |
---|---|---|
committer | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-09-14 22:59:40 +0000 |
commit | cdcfddcb2e7d4f215ce9940f25a8c57f2c58a919 (patch) | |
tree | ccc1ea62555f1460691b13ba28ca95e21462890f /src | |
parent | 534b39ae8d9023045e7f3c0bb616add17dbe6791 (diff) | |
download | poezio-cdcfddcb2e7d4f215ce9940f25a8c57f2c58a919.tar.gz poezio-cdcfddcb2e7d4f215ce9940f25a8c57f2c58a919.tar.bz2 poezio-cdcfddcb2e7d4f215ce9940f25a8c57f2c58a919.tar.xz poezio-cdcfddcb2e7d4f215ce9940f25a8c57f2c58a919.zip |
avoid some crashes. Also fixes the line separator on new messages
Diffstat (limited to 'src')
-rw-r--r-- | src/gui.py | 2 | ||||
-rw-r--r-- | src/tab.py | 8 | ||||
-rw-r--r-- | src/window.py | 13 |
3 files changed, 15 insertions, 8 deletions
@@ -1172,6 +1172,8 @@ class Gui(object): sys.exit() def do_command(self, key): + if not key: + return from common import debug debug('do_command, %s, %s\n' % (key, self.current_tab())) res = self.current_tab().on_input(key) @@ -271,9 +271,9 @@ class MucTab(Tab): def on_lose_focus(self): self._room.set_color_state(theme.COLOR_TAB_NORMAL) self._room.remove_line_separator() + self._room.add_line_separator() def on_gain_focus(self): - self._room.add_line_separator() self._room.set_color_state(theme.COLOR_TAB_CURRENT) def on_scroll_up(self): @@ -336,9 +336,9 @@ class PrivateTab(Tab): def on_lose_focus(self): self._room.set_color_state(theme.COLOR_TAB_NORMAL) self._room.remove_line_separator() + self._room.add_line_separator() def on_gain_focus(self): - self._room.add_line_separator() self._room.set_color_state(theme.COLOR_TAB_CURRENT) def on_scroll_up(self): @@ -353,9 +353,5 @@ class PrivateTab(Tab): self.info_header.resize(1, self.width, self.height-3-self.info_win_size, 0, stdscr, self.visible) self.info_win.resize(self.info_win_size, (self.width//10)*9, self.height-2-self.info_win_size, 0, stdscr, self.visible) - # self.text_win.resize(self.height-4-self.info_win_size, text_width, 1, 0, stdscr, self.visible) - # self.info_header.resize(1, (self.width//10)*9, self.height-3-self.info_win_size, 0, stdscr, self.visible) - # self.info_win.resize(self.info_win_size, (self.width//10)*9, self.height-2-self.info_win_size, 0, stdscr, self.visible) - def get_room(self): return self._room diff --git a/src/window.py b/src/window.py index c9576873..342e4156 100644 --- a/src/window.py +++ b/src/window.py @@ -41,6 +41,9 @@ class Win(object): try: self.win = parent_win.subwin(height, width, y, x) except: + from common import debug + debug('%s %s %s %s %s\n' % (height, width, y, x, parent_win)) + raise # When resizing in a too little height (less than 3 lines) # We don't need to resize the window, since this size # just makes no sense @@ -94,8 +97,14 @@ class UserList(Win): self.win.erase() y = 0 for user in sorted(users): - role_col = self.color_role[user.role] - show_col = self.color_show[user.show] + if not user.role in self.color_role: + role_col = theme.COLOR_USER_NONE + else: + role_col = self.color_role[user.role] + if not user.show in self.color_show: + show_col = theme.COLOR_STATUS_NONE + else: + show_col = self.color_show[user.show] self.addstr(y, 0, theme.CHAR_STATUS, curses.color_pair(show_col)) self.addnstr(y, 1, user.nick, self.width-2, curses.color_pair(role_col)) y += 1 |