diff --git a/README.asciidoc b/README.asciidoc index 01bbe9468..d838b4291 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -156,9 +156,9 @@ Contributors, sorted by the number of commits in descending order: * Felix Van der Jeugt * Raphael Pierzina * Joel Torstensson +* Ryan Roden-Corrent * Patric Schmitz * Claude -* Ryan Roden-Corrent * meles5 * Tarcisio Fedrizzi * Artur Shaik diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index fb5e86db5..5c3a029b1 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -310,6 +310,7 @@ class TabbedBrowser(tabwidget.TabWidget): """Undo removing of a tab.""" # Remove unused tab which may be created after the last tab is closed last_close = config.get('tabs', 'last-close') + use_current_tab = False if last_close in ['blank', 'startpage', 'default-page']: only_one_tab_open = self.count() == 1 no_history = self.widget(0).history().count() == 1 @@ -322,12 +323,17 @@ class TabbedBrowser(tabwidget.TabWidget): last_close_urlstr = urls[last_close].toString().rstrip('/') first_tab_urlstr = first_tab_url.toString().rstrip('/') last_close_url_used = first_tab_urlstr == last_close_urlstr - - if only_one_tab_open and no_history and last_close_url_used: - self.removeTab(0) + use_current_tab = (only_one_tab_open and no_history and + last_close_url_used) url, history_data = self._undo_stack.pop() - newtab = self.tabopen(url, background=False) + + if use_current_tab: + self.openurl(url, newtab=False) + newtab = self.widget(0) + else: + newtab = self.tabopen(url, background=False) + qtutils.deserialize(history_data, newtab.history()) @pyqtSlot('QUrl', bool) diff --git a/tests/integration/features/tabs.feature b/tests/integration/features/tabs.feature index cb7b54da8..0349dcde5 100644 --- a/tests/integration/features/tabs.feature +++ b/tests/integration/features/tabs.feature @@ -635,6 +635,16 @@ Feature: Tab management Then the following tabs should be open: - data/hello.txt (active) + Scenario: Double-undo with single tab on last-close default page + Given I have a fresh instance + When I open about:blank + And I set tabs -> last-close to default-page + And I set general -> default-page to about:blank + And I run :undo + And I run :undo + Then the error "Nothing to undo!" should be shown + And the error "Nothing to undo!" should be shown + # last-close Scenario: last-close = blank