diff options
author | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-09-27 22:53:25 +0000 |
---|---|---|
committer | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-09-27 22:53:25 +0000 |
commit | 3ea295f8c78d74c7ce94db3271f0ce3464e4e0cb (patch) | |
tree | 6058acac1735fb2cc583bd1edbca6b9b93dd500c /src | |
parent | d94efc30ccfb376dab7381090facc6c75b2f49c2 (diff) | |
download | poezio-3ea295f8c78d74c7ce94db3271f0ce3464e4e0cb.tar.gz poezio-3ea295f8c78d74c7ce94db3271f0ce3464e4e0cb.tar.bz2 poezio-3ea295f8c78d74c7ce94db3271f0ce3464e4e0cb.tar.xz poezio-3ea295f8c78d74c7ce94db3271f0ce3464e4e0cb.zip |
avoid a crash when receiving a message from someone not in our roster
Diffstat (limited to 'src')
-rw-r--r-- | src/gui.py | 3 | ||||
-rw-r--r-- | src/window.py | 12 |
2 files changed, 10 insertions, 5 deletions
@@ -928,8 +928,7 @@ class Gui(object): is_jid(self.current_tab().get_name()): room += '@%s' % jid_get_domain(self.current_tab().get_name()) else: # no server could be found, print a message and return - # self.add_message_to_text_buffer(self.current_room(), _("You didn't specify a server for the room you want to join")) - # TODO INFO + self.information(_("You didn't specify a server for the room you want to join"), 'Error') return r = self.get_room_by_name(room) if len(args) == 2: # a password is provided diff --git a/src/window.py b/src/window.py index bef3bc9c..c10d3388 100644 --- a/src/window.py +++ b/src/window.py @@ -257,16 +257,22 @@ class ConversationInfoWin(InfoWin): def refresh(self, room, contact): if not self.visible: return + # contact can be None, if we receive a message + # from someone not in our roster. In this case, we display + # only the maximum information from the message we can get. g_lock.acquire() self.win.erase() - self.write_room_name(contact) + self.write_room_name(contact, room) self.print_scroll_position(room) self.finish_line(theme.COLOR_INFORMATION_BAR) self.win.refresh() g_lock.release() - def write_room_name(self, contact): - txt = '%s' % contact.get_jid().bare + def write_room_name(self, contact, room): + if not contact: + txt = '%s' % room.name + else: + txt = '%s' % contact.get_jid().bare self.addnstr(txt, len(txt), curses.color_pair(theme.COLOR_INFORMATION_BAR)) class MucInfoWin(InfoWin): |