diff options
-rw-r--r-- | src/core.py | 7 | ||||
-rw-r--r-- | src/tabs/conversationtab.py | 18 |
2 files changed, 20 insertions, 5 deletions
diff --git a/src/core.py b/src/core.py index c3ae2ef8..890e59d9 100644 --- a/src/core.py +++ b/src/core.py @@ -3457,8 +3457,11 @@ class Core(object): jid = presence['from'] contact = roster[jid.bare] tab = self.get_conversation_by_jid(jid, create=False) - if isinstance(tab, tabs.DynamicConversationTab) and tab.get_dest_jid() != jid.full: - tab.unlock(from_=jid.full) + if isinstance(tab, tabs.DynamicConversationTab): + if tab.get_dest_jid() != jid.full: + tab.unlock(from_=jid.full) + elif presence['type'] == 'unavailable': + tab.unlock() if contact is None: return roster.modified() diff --git a/src/tabs/conversationtab.py b/src/tabs/conversationtab.py index 6c0bf2e0..82483046 100644 --- a/src/tabs/conversationtab.py +++ b/src/tabs/conversationtab.py @@ -387,7 +387,12 @@ class DynamicConversationTab(ConversationTab): assert(resource) if resource != self.locked_resource: self.locked_resource = resource - self.add_message(_('Conversation locked to %s/%s.') % (self.name, resource), typ=0) + + message = _('\x19%s}Conversation locked to %s/%s.') % ( + dump_tuple(get_theme().COLOR_INFORMATION_TEXT), + self.name, + resource) + self.add_message(message, typ=0) def unlock_command(self, arg=None): self.unlock() @@ -400,10 +405,17 @@ class DynamicConversationTab(ConversationTab): """ if self.locked_resource != None: self.locked_resource = None + if from_: - self.add_message(_('Conversation unlocked (received activity from %s).') % from_, typ=0) + message = _('\x19%s}Conversation unlocked ' + '(received activity from %s).') % ( + dump_tuple(get_theme().COLOR_INFORMATION_TEXT), + from_) + self.add_message(message, typ=0) else: - self.add_message(_('Conversation unlocked.'), typ=0) + message = _('\x19%s}Conversation unlocked.') % ( + dump_tuple(get_theme().COLOR_INFORMATION_TEXT)) + self.add_message(message, typ=0) def get_dest_jid(self): """ |