summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2012-12-15 21:49:11 +0100
committermathieui <mathieui@mathieui.net>2012-12-15 21:49:11 +0100
commit4f084671d3a345043b92495b6b4147dbad76428e (patch)
tree73d1cae3dc845ba4d8df4a7f2d8dd1de0728aa4b
parent9f7a16141ab7f4ac6b094eb5d0836507e3edf80c (diff)
downloadpoezio-4f084671d3a345043b92495b6b4147dbad76428e.tar.gz
poezio-4f084671d3a345043b92495b6b4147dbad76428e.tar.bz2
poezio-4f084671d3a345043b92495b6b4147dbad76428e.tar.xz
poezio-4f084671d3a345043b92495b6b4147dbad76428e.zip
(should) Fix #2175 ; prevent bugs caused by tab gaps
-rw-r--r--src/core.py6
-rw-r--r--src/tabs.py7
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)