From 4f084671d3a345043b92495b6b4147dbad76428e Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 15 Dec 2012 21:49:11 +0100 Subject: [PATCH] (should) Fix #2175 ; prevent bugs caused by tab gaps --- src/core.py | 6 ++++++ src/tabs.py | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core.py b/src/core.py index e74ecd01..6bd54efb 100644 --- a/src/core.py +++ b/src/core.py @@ -1012,6 +1012,10 @@ class Core(object): if config.get('create_gaps', 'false').lower() == 'true': if nb >= len(self.tabs) - 1: self.tabs.remove(tab) + nb -= 1 + while not self.tabs[nb]: # remove the trailing gaps + self.tabs.pop() + nb -= 1 else: self.tabs[nb] = tabs.GapTab() else: @@ -1506,6 +1510,8 @@ class Core(object): self.current_tab().on_lose_focus() if isinstance(nb, int): if 0 <= nb < len(self.tabs): + if not self.tabs[nb]: + return self.current_tab_nb = nb else: for tab in self.tabs: diff --git a/src/tabs.py b/src/tabs.py index c9c5d153..33f91c57 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -269,7 +269,7 @@ class Tab(object): """ Called on each screen refresh (when something has changed) """ - raise NotImplementedError + pass def get_name(self): """ @@ -389,6 +389,9 @@ class GapTab(Tab): def get_name(self): return '' + def refresh(self): + log.debug('WARNING: refresh() called on a gap tab, this should not happen') + class ChatTab(Tab): """ A tab containing a chat of any type. @@ -611,7 +614,7 @@ class ChatTab(Tab): return self._text_buffer.messages def command_say(self, line): - raise NotImplementedError + pass def on_line_up(self): return self.text_win.scroll_up(1)