diff --git a/poezio/tabs/basetabs.py b/poezio/tabs/basetabs.py index 7ee8ff17..43ab237f 100644 --- a/poezio/tabs/basetabs.py +++ b/poezio/tabs/basetabs.py @@ -181,6 +181,10 @@ class Tab: def vertical_color(self): return VERTICAL_STATE_COLORS[self._state]() + @property + def priority(self) -> Union[int, float]: + return STATE_PRIORITY.get(self._state, -1) + @property def state(self) -> str: return self._state diff --git a/poezio/windows/info_bar.py b/poezio/windows/info_bar.py index 8fb34d91..67b68888 100644 --- a/poezio/windows/info_bar.py +++ b/poezio/windows/info_bar.py @@ -18,6 +18,7 @@ from poezio.common import unique_prefix_of log = logging.getLogger(__name__) + class GlobalInfoBar(Win): __slots__ = ('core') @@ -69,7 +70,8 @@ class GlobalInfoBar(Win): if not tab: continue color = tab.color - if not show_inactive and color is theme.COLOR_TAB_NORMAL: + if not show_inactive and color is theme.COLOR_TAB_NORMAL and ( + tab.priority < 0): continue try: if show_nums or not show_names: @@ -114,7 +116,10 @@ class VerticalGlobalInfoBar(Win): if not config.getbool('show_inactive_tabs'): sorted_tabs = [ tab for tab in sorted_tabs - if tab.vertical_color != theme.COLOR_VERTICAL_TAB_NORMAL + if ( + tab.vertical_color != theme.COLOR_VERTICAL_TAB_NORMAL or + tab.priority > 0 + ) ] nb_tabs = len(sorted_tabs) use_nicks = config.getbool('use_tab_nicks')