summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core.py7
-rw-r--r--src/tabs/conversationtab.py18
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):
"""