summaryrefslogtreecommitdiff
path: root/src/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/core.py')
-rw-r--r--src/core.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/core.py b/src/core.py
index a3da7e3f..36be6124 100644
--- a/src/core.py
+++ b/src/core.py
@@ -1009,20 +1009,23 @@ class Core(object):
try:
nb = int(args[0])
except ValueError:
- self.command_help('win')
- return
+ nb = arg.strip()
if self.current_tab().nb == nb:
return
self.previous_tab_nb = self.current_tab().nb
self.current_tab().on_lose_focus()
start = self.current_tab()
self.tabs.append(self.tabs.pop(0))
- while self.current_tab().nb != nb:
- self.tabs.append(self.tabs.pop(0))
- if self.current_tab() == start:
- self.current_tab().set_color_state(theme.COLOR_TAB_CURRENT)
- self.refresh_window()
- return
+ if isinstance(nb, int):
+ while self.current_tab().nb != nb:
+ self.tabs.append(self.tabs.pop(0))
+ if self.current_tab() == start:
+ break
+ else:
+ while nb not in JID(self.current_tab().get_name()).user:
+ self.tabs.append(self.tabs.pop(0))
+ if self.current_tab() is start:
+ break
self.current_tab().on_gain_focus()
self.refresh_window()