diff options
-rw-r--r-- | poezio/core/handlers.py | 9 | ||||
-rw-r--r-- | poezio/tabs/privatetab.py | 6 |
2 files changed, 13 insertions, 2 deletions
diff --git a/poezio/core/handlers.py b/poezio/core/handlers.py index 1ffb06a1..e8f1dd68 100644 --- a/poezio/core/handlers.py +++ b/poezio/core/handlers.py @@ -220,10 +220,15 @@ class HandlerCore: jid_from = message['from'] for tab in self.core.get_tabs(tabs.MucTab): if tab.name == jid_from.bare: - if message['type'] == 'error': + if jid_from.full == jid_from.bare: self.core.room_error(message, jid_from.bare) else: - self.on_groupchat_private_message(message) + text = self.core.get_error_message(message) + p_tab = self.core.get_tab_by_name(jid_from.full, tabs.PrivateTab) + if p_tab: + p_tab.add_error(text) + else: + self.core.information(text, 'Error') return tab = self.core.get_conversation_by_jid(message['from'], create=False) error_msg = self.core.get_error_message(message, deprecated=True) diff --git a/poezio/tabs/privatetab.py b/poezio/tabs/privatetab.py index 7a132167..54bcff96 100644 --- a/poezio/tabs/privatetab.py +++ b/poezio/tabs/privatetab.py @@ -360,4 +360,10 @@ class PrivateTab(OneToOneTab): def matching_names(self): return [(3, safeJID(self.name).resource), (4, self.name)] + def add_error(self, error_message): + error = '\x19%s}%s\x19o' % (dump_tuple(get_theme().COLOR_CHAR_NACK), + error_message) + self.add_message(error, highlight=True, nickname='Error', + nick_color=get_theme().COLOR_ERROR_MSG, typ=2) + self.core.refresh_window() |