summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--poezio/core/commands.py28
-rw-r--r--poezio/tabs/listtab.py1
-rw-r--r--poezio/windows/data_forms.py8
-rw-r--r--poezio/windows/inputs.py3
4 files changed, 21 insertions, 19 deletions
diff --git a/poezio/core/commands.py b/poezio/core/commands.py
index dbee556f..1790cd89 100644
--- a/poezio/core/commands.py
+++ b/poezio/core/commands.py
@@ -188,32 +188,32 @@ class CommandCore:
@command_args_parser.quoted(1)
def win(self, args):
"""
- /win <number>
+ /win <number or name>
"""
if args is None:
return self.help('win')
- nb = args[0]
+ name = args[0]
try:
- nb = int(nb)
+ number = int(name)
except ValueError:
- pass
- if self.core.current_tab_nb == nb:
+ number = -1
+ if number != -1 and self.core.current_tab_nb == number:
return
+ prev_nb = self.core.previous_tab_nb
self.core.previous_tab_nb = self.core.current_tab_nb
old_tab = self.core.current_tab()
- if isinstance(nb, int):
- if 0 <= nb < len(self.core.tabs):
- if not self.core.tabs[nb]:
- return
- self.core.current_tab_nb = nb
+ if 0 <= number < len(self.core.tabs):
+ if not self.core.tabs[number]:
+ self.core.previous_tab_nb = prev_nb
+ return
+ self.core.current_tab_nb = number
else:
matchs = []
for tab in self.core.tabs:
- for name in tab.matching_names():
- if nb.lower() in name[1].lower():
- matchs.append((name[0], tab))
- self.core.current_tab_nb = tab.nb
+ for tab_name in tab.matching_names():
+ if name.lower() in tab_name[1].lower():
+ matchs.append((tab_name[0], tab))
if not matchs:
return
tab = min(matchs, key=lambda m: m[0])[1]
diff --git a/poezio/tabs/listtab.py b/poezio/tabs/listtab.py
index 18ee1da4..ed40241b 100644
--- a/poezio/tabs/listtab.py
+++ b/poezio/tabs/listtab.py
@@ -32,6 +32,7 @@ class ListTab(Tab):
"""
Tab.__init__(self, core)
self.state = 'normal'
+ self._error_message = ''
self.name = name
columns = collections.OrderedDict()
for col, num in cols:
diff --git a/poezio/windows/data_forms.py b/poezio/windows/data_forms.py
index 54b28540..4d9eda93 100644
--- a/poezio/windows/data_forms.py
+++ b/poezio/windows/data_forms.py
@@ -14,7 +14,7 @@ from poezio.theming import to_curses_attr, get_theme
class FieldInput(object):
"""
- All input type in a data form should inherite this class,
+ All input types in a data form should inherit this class,
in addition with windows.Input or any relevant class from the
'windows' library.
"""
@@ -124,8 +124,10 @@ class TextMultiWin(FieldInput, Win):
def __init__(self, field):
FieldInput.__init__(self, field)
Win.__init__(self)
- self.options = field.get_value()
- if not isinstance(self.options, list):
+ options = field.get_value()
+ if isinstance(self.options, list):
+ self.options = options
+ else:
self.options = self.options.split('\n') if self.options else []
self.val_pos = 0
self.edition_input = None
diff --git a/poezio/windows/inputs.py b/poezio/windows/inputs.py
index d1716914..7e0155e1 100644
--- a/poezio/windows/inputs.py
+++ b/poezio/windows/inputs.py
@@ -563,6 +563,7 @@ class HistoryInput(Input):
def __init__(self):
Input.__init__(self)
self.help_message = ''
+ self.histo_pos = -1
self.current_completed = ''
self.key_func['^R'] = self.toggle_search
self.search = False
@@ -647,7 +648,6 @@ class MessageInput(HistoryInput):
def __init__(self):
HistoryInput.__init__(self)
self.last_completion = None
- self.histo_pos = -1
self.key_func["KEY_UP"] = self.key_up
self.key_func["M-A"] = self.key_up
self.key_func["KEY_DOWN"] = self.key_down
@@ -702,7 +702,6 @@ class CommandInput(HistoryInput):
self.key_func["M-A"] = self.key_up
self.key_func["KEY_DOWN"] = self.key_down
self.key_func["M-B"] = self.key_down
- self.histo_pos = -1
def do_command(self, key, reset=True, raw=False):
res = Input.do_command(self, key, reset=reset, raw=raw)