diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 810e357ce..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: @@ -1078,11 +1080,13 @@ class CommandDispatcher: """ index = count if count is not None else index - if index in ('last', self._current_index() + 1): + if index == 'last': self._tab_focus_last() return - - 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 efdd692ac..c16d1273e 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