summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2017-06-20 12:45:21 +0200
committerFlorian Bruhin <git@the-compiler.org>2017-06-20 12:45:21 +0200
commit06d4a24bd1516b6199c85a47aa52b946a850d508 (patch)
tree0ca9a5a77aa603aa2e53e6d761fe496a76caa43f
parent3a7a3909d7618d284c010ba8b7f2a78e6e2fa797 (diff)
parentf0ff02fcb2b23af9429fe10a100380f7d3ea8d57 (diff)
downloadqutebrowser-06d4a24bd1516b6199c85a47aa52b946a850d508.tar.gz
qutebrowser-06d4a24bd1516b6199c85a47aa52b946a850d508.zip
Merge branch 'master' of https://github.com/iordanisg/qutebrowser
-rw-r--r--qutebrowser/browser/commands.py13
-rw-r--r--tests/end2end/features/javascript.feature2
-rw-r--r--tests/end2end/features/tabs.feature12
3 files changed, 22 insertions, 5 deletions
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py
index 97a764c68..2f94412eb 100644
--- a/qutebrowser/browser/commands.py
+++ b/qutebrowser/browser/commands.py
@@ -157,12 +157,14 @@ class CommandDispatcher:
else:
return None
- def _tab_focus_last(self):
+ def _tab_focus_last(self, show_error=True):
"""Select the tab which was last focused."""
try:
tab = objreg.get('last-focused-tab', scope='window',
window=self._win_id)
except KeyError:
+ if not show_error:
+ return
raise cmdexc.CommandError("No last focused tab!")
idx = self._tabbed_browser.indexOf(tab)
if idx == -1:
@@ -1076,12 +1078,15 @@ class CommandDispatcher:
last tab.
count: The tab index to focus, starting with 1.
"""
+ index = count if count is not None else index
+
if index == 'last':
self._tab_focus_last()
return
- index = count if count is not None else index
-
- if index is None:
+ elif index == self._current_index() + 1:
+ self._tab_focus_last(show_error=False)
+ return
+ elif index is None:
self.tab_next()
return
diff --git a/tests/end2end/features/javascript.feature b/tests/end2end/features/javascript.feature
index c6c7acc15..c6942f6e0 100644
--- a/tests/end2end/features/javascript.feature
+++ b/tests/end2end/features/javascript.feature
@@ -50,7 +50,7 @@ Feature: Javascript stuff
And I open data/javascript/window_open.html in a new tab
And I run :click-element id open-normal
And I wait for "Changing title for idx 2 to 'about:blank'" in the log
- And I run :tab-focus 2
+ And I run :buffer window_open.html
And I run :click-element id close-twice
And I wait for "Focus object changed: *" in the log
Then no crash should happen
diff --git a/tests/end2end/features/tabs.feature b/tests/end2end/features/tabs.feature
index 00fe5c16a..9980b448f 100644
--- a/tests/end2end/features/tabs.feature
+++ b/tests/end2end/features/tabs.feature
@@ -236,6 +236,18 @@ Feature: Tab management
- data/numbers/2.txt
- data/numbers/3.txt
+ Scenario: :tab-focus with current tab number
+ When I open data/numbers/1.txt
+ And I open data/numbers/2.txt in a new tab
+ And I open data/numbers/3.txt in a new tab
+ And I run :tab-focus 1
+ And I run :tab-focus 3
+ And I run :tab-focus 3
+ Then the following tabs should be open:
+ - data/numbers/1.txt (active)
+ - data/numbers/2.txt
+ - data/numbers/3.txt
+
Scenario: :tab-focus with -1
When I open data/numbers/1.txt
And I open data/numbers/2.txt in a new tab