diff --git a/src/core/core.py b/src/core/core.py index a0bb243c..19eb9b16 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -458,7 +458,7 @@ class Core(object): default_tab = tabs.RosterInfoTab() default_tab.on_gain_focus() self.tabs.append(default_tab) - self.information(_('Welcome to poezio!')) + self.information(_('Welcome to poezio!'), _('Info')) if firstrun: self.information(_( 'It seems that it is the first time you start poezio.\n' @@ -1419,7 +1419,8 @@ class Core(object): Expand the information win a number of lines """ if self.information_win_size >= self.current_tab().height -5 or \ - self.information_win_size+nb >= self.current_tab().height-4: + self.information_win_size+nb >= self.current_tab().height-4 or\ + self.size.core_degrade_y: return 0 if self.information_win_size == 14: return 0 @@ -1437,7 +1438,7 @@ class Core(object): """ Reduce the size of the information win """ - if self.information_win_size == 0: + if self.information_win_size == 0 or self.size.core_degrade_y: return self.information_win_size -= nb if self.information_win_size < 0: @@ -1500,14 +1501,16 @@ class Core(object): Resize the global_information_win only once at each resize. """ with g_lock: - height = min(tabs.Tab.height - 1 - self.information_win_size - - tabs.Tab.tab_win_height(), - tabs.Tab.height - 5) - if not self.size.core_degrade_y: - self.information_win.resize(self.information_win_size, - tabs.Tab.width, - height, - 0) + if self.information_win_size > tabs.Tab.height - 6: + self.information_win_size = tabs.Tab.height - 6 + if tabs.Tab.height < 6: + self.information_win_size = 0 + height = (tabs.Tab.height - 1 - self.information_win_size + - tabs.Tab.tab_win_height()) + self.information_win.resize(self.information_win_size, + tabs.Tab.width, + height, + 0) def resize_global_info_bar(self): """ @@ -1515,10 +1518,10 @@ class Core(object): """ with g_lock: height, width = self.stdscr.getmaxyx() - if not self.size.core_degrade_y: - self.tab_win.resize(1, tabs.Tab.width, tabs.Tab.height - 2, 0) - if (config.get('enable_vertical_tab_list', False) - and not self.size.core_degrade_x): + if config.get('enable_vertical_tab_list', False): + + if self.size.core_degrade_x: + return try: height, _ = self.stdscr.getmaxyx() truncated_win = self.stdscr.subwin(height, @@ -1528,8 +1531,10 @@ class Core(object): log.error('Curses error on infobar resize', exc_info=True) return self.left_tab_win = windows.VerticalGlobalInfoBar(truncated_win) - else: - self.left_tab_win = None + elif not self.size.core_degrade_y: + self.tab_win.resize(1, tabs.Tab.width, + tabs.Tab.height - 2, 0) + self.left_tab_win = None def add_message_to_text_buffer(self, buff, txt, time=None, nickname=None, history=None): diff --git a/src/core/handlers.py b/src/core/handlers.py index 05eab9f7..12e07201 100644 --- a/src/core/handlers.py +++ b/src/core/handlers.py @@ -813,7 +813,7 @@ def on_failed_connection(self): """ We cannot contact the remote server """ - self.information(_("Connection to remote server failed")) + self.information(_("Connection to remote server failed"), _('Error')) def on_disconnected(self, event): """ @@ -822,25 +822,27 @@ def on_disconnected(self, event): roster.modified() for tab in self.get_tabs(tabs.MucTab): tab.disconnect() - self.information(_("Disconnected from server.")) + self.information(_("Disconnected from server."), _('Error')) def on_failed_auth(self, event): """ Authentication failed """ - self.information(_("Authentication failed (bad credentials?).")) + self.information(_("Authentication failed (bad credentials?)."), + _('Error')) def on_no_auth(self, event): """ Authentication failed (no mech) """ - self.information(_("Authentication failed, no login method available.")) + self.information(_("Authentication failed, no login method available."), + _('Error')) def on_connected(self, event): """ Remote host responded, but we are not yet authenticated """ - self.information(_("Connected to server.")) + self.information(_("Connected to server."), 'Info') def on_session_start(self, event): """ @@ -849,8 +851,8 @@ def on_session_start(self, event): self.connection_time = time.time() if not self.plugins_autoloaded: # Do not reload plugins on reconnection self.autoload_plugins() - self.information(_("Authentication success.")) - self.information(_("Your JID is %s") % self.xmpp.boundjid.full) + self.information(_("Authentication success."), 'Info') + self.information(_("Your JID is %s") % self.xmpp.boundjid.full, 'Info') if not self.xmpp.anon: # request the roster self.xmpp.get_roster() diff --git a/src/tabs/basetabs.py b/src/tabs/basetabs.py index 77086ec6..ed40ce4a 100644 --- a/src/tabs/basetabs.py +++ b/src/tabs/basetabs.py @@ -187,7 +187,7 @@ class Tab(object): def resize(scr): with g_lock: Tab.height, Tab.width = scr.getmaxyx() - windows.Win._tab_win = scr + windows.Win._tab_win = scr def register_command(self, name, func, *, desc='', shortdesc='', completion=None, usage=''): """ @@ -283,8 +283,9 @@ class Tab(object): return False def refresh_tab_win(self): - if self.left_tab_win and not self.size.core_degrade_x: - self.left_tab_win.refresh() + if config.get('enable_vertical_tab_list', False): + if self.left_tab_win and not self.size.core_degrade_x: + self.left_tab_win.refresh() elif not self.size.core_degrade_y: self.tab_win.refresh() diff --git a/src/tabs/conversationtab.py b/src/tabs/conversationtab.py index d37ba4b7..756634ce 100644 --- a/src/tabs/conversationtab.py +++ b/src/tabs/conversationtab.py @@ -279,7 +279,7 @@ class ConversationTab(ChatTab): if display_bar: self.upper_bar.resize(1, self.width, 0, 0) self.info_header.resize(1, self.width, - self.height - 2 - bar_height - info_win_height + self.height - 2 - info_win_height - tab_win_height, 0) self.input.resize(1, self.width, self.height - 1, 0) diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py index 2886a41e..500ea541 100644 --- a/src/tabs/muctab.py +++ b/src/tabs/muctab.py @@ -814,14 +814,13 @@ class MucTab(ChatTab): info_win_height = self.core.information_win_size - if display_user_list: - self.user_win.resize(self.height - 3 - info_win_height - - tab_win_height, - self.width - (self.width // 10) * 9 - 1, - 1, - (self.width // 10) * 9 + 1) - self.v_separator.resize(self.height - 2 - tab_win_height, - 1, 1, 9 * (self.width // 10)) + self.user_win.resize(self.height - 3 - info_win_height + - tab_win_height, + self.width - (self.width // 10) * 9 - 1, + 1, + (self.width // 10) * 9 + 1) + self.v_separator.resize(self.height - 3 - info_win_height - tab_win_height, + 1, 1, 9 * (self.width // 10)) self.topic_win.resize(1, self.width, 0, 0) @@ -949,6 +948,8 @@ class MucTab(ChatTab): self.width - (self.width // 10) * 9 - 1, 1, (self.width // 10) * 9 + 1) + self.v_separator.resize(self.height - 3 - self.core.information_win_size - Tab.tab_win_height(), + 1, 1, 9 * (self.width // 10)) self.text_win.resize(self.height - 3 - self.core.information_win_size - Tab.tab_win_height(), text_width, 1, 0)