diff options
author | Florian Bruhin <git@the-compiler.org> | 2017-06-20 12:45:21 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2017-06-20 12:45:21 +0200 |
commit | 06d4a24bd1516b6199c85a47aa52b946a850d508 (patch) | |
tree | 0ca9a5a77aa603aa2e53e6d761fe496a76caa43f | |
parent | 3a7a3909d7618d284c010ba8b7f2a78e6e2fa797 (diff) | |
parent | f0ff02fcb2b23af9429fe10a100380f7d3ea8d57 (diff) | |
download | qutebrowser-06d4a24bd1516b6199c85a47aa52b946a850d508.tar.gz qutebrowser-06d4a24bd1516b6199c85a47aa52b946a850d508.zip |
Merge branch 'master' of https://github.com/iordanisg/qutebrowser
-rw-r--r-- | qutebrowser/browser/commands.py | 13 | ||||
-rw-r--r-- | tests/end2end/features/javascript.feature | 2 | ||||
-rw-r--r-- | tests/end2end/features/tabs.feature | 12 |
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 |