Avoid throwing exception when no last focused tab exists

This commit is contained in:
Iordanis Grigoriou 2017-06-19 15:48:17 +02:00
parent e14477375b
commit f0ff02fcb2
2 changed files with 9 additions and 5 deletions

View File

@ -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

View File

@ -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