diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core.py | 4 | ||||
-rw-r--r-- | src/tabs.py | 17 |
2 files changed, 20 insertions, 1 deletions
diff --git a/src/core.py b/src/core.py index 87f27e17..5fcdf8a3 100644 --- a/src/core.py +++ b/src/core.py @@ -971,6 +971,8 @@ class Core(object): return tab new_tab = tabs.ConversationTab(jid) # insert it in the rooms + if not focus: + new_tab.state = "private" self.add_tab(new_tab, focus) self.refresh_window() return new_tab @@ -989,6 +991,8 @@ class Core(object): own_nick = room.own_nick r = Room(complete_jid, own_nick) # PrivateRoom here new_tab = tabs.PrivateTab(r) + if not focus: + new_tab.state = "private" # insert it in the tabs self.add_tab(new_tab, focus) # self.window.new_room(r) diff --git a/src/tabs.py b/src/tabs.py index 2e4a8901..a27eeb38 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -64,6 +64,17 @@ STATE_COLORS = { 'private': lambda: get_theme().COLOR_TAB_PRIVATE, 'normal': lambda: get_theme().COLOR_TAB_NORMAL, 'current': lambda: get_theme().COLOR_TAB_CURRENT, +# 'attention': lambda: get_theme().COLOR_TAB_ATTENTION, + } + +STATE_PRIORITY = { + 'normal': -1, + 'current': -1, + 'disconnected': 0, + 'message': 1, + 'highlight': 2, + 'private': 2, +# 'attention': 3 } class Tab(object): @@ -71,7 +82,7 @@ class Tab(object): tab_core = None def __init__(self): self.input = None - self.state = 'normal' + self._state = 'normal' self.need_resize = False self.nb = Tab.number Tab.number += 1 @@ -109,6 +120,10 @@ class Tab(object): if not value in STATE_COLORS: log.debug("WARNING: invalid value for tab state") return + elif STATE_PRIORITY[value] < STATE_PRIORITY[self._state] and \ + value != 'current': + log.debug("WARNING: did not set status because of lower priority") + return self._state = value @staticmethod |