From 07c0470e64773761c5c84130615f7bae9f7c1221 Mon Sep 17 00:00:00 2001 From: arza Date: Fri, 15 Mar 2019 19:31:12 +0200 Subject: [PATCH 1/6] Fix ":tab-focus last" after moving current tab --- qutebrowser/mainwindow/tabbedbrowser.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 11fe0b600..d2fe08f67 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -697,6 +697,8 @@ class TabbedBrowser(QWidget): log.webview.debug("on_current_changed got called with invalid " "index {}".format(idx)) return + if self._now_focused is tab: + return log.modes.debug("Current tab changed, focusing {!r}".format(tab)) tab.setFocus() From 06e499780dfb2ac2002d55a492226ab276dbaa28 Mon Sep 17 00:00:00 2001 From: arza Date: Fri, 15 Mar 2019 19:36:46 +0200 Subject: [PATCH 2/6] Add a test for ":tab-focus last" after moving current tab --- tests/end2end/features/tabs.feature | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/end2end/features/tabs.feature b/tests/end2end/features/tabs.feature index e029a8eff..3622a1a06 100644 --- a/tests/end2end/features/tabs.feature +++ b/tests/end2end/features/tabs.feature @@ -292,6 +292,17 @@ Feature: Tab management When I run :tab-focus last Then the error "No last focused tab!" should be shown + Scenario: :tab-focus last after moving current tab + 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-move 2 + And I run :tab-focus last + Then the following tabs should be open: + - data/numbers/1.txt + - data/numbers/3.txt + - data/numbers/2.txt (active) + # tab-prev/tab-next Scenario: :tab-prev From 8027203e89e67908af7d25ee74fb1dd42271e214 Mon Sep 17 00:00:00 2001 From: arza Date: Sat, 16 Mar 2019 21:58:51 +0200 Subject: [PATCH 3/6] Add a test for :tab-move in insert mode --- tests/end2end/features/tabs.feature | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/end2end/features/tabs.feature b/tests/end2end/features/tabs.feature index 3622a1a06..d84b5c797 100644 --- a/tests/end2end/features/tabs.feature +++ b/tests/end2end/features/tabs.feature @@ -553,6 +553,13 @@ Feature: Tab management - url: http://localhost:*/data/title.html title: Test title + Scenario: :tab-move in insert mode + When I open data/numbers/1.txt + And I open data/numbers/2.txt in a new tab + And I run :enter-mode insert + And I run :tab-move 1 + Then "Leaving mode KeyMode.insert (reason: tab changed)" should not be logged + # :tab-clone Scenario: :tab-clone with -b and -w From 779ed7e06b4b92b8b763a6ef9634312db99b6b9b Mon Sep 17 00:00:00 2001 From: arza Date: Mon, 18 Mar 2019 09:47:56 +0200 Subject: [PATCH 4/6] Fix test for :undo after rearranging tabs --- tests/end2end/features/tabs.feature | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/end2end/features/tabs.feature b/tests/end2end/features/tabs.feature index d84b5c797..0508bbd06 100644 --- a/tests/end2end/features/tabs.feature +++ b/tests/end2end/features/tabs.feature @@ -777,7 +777,6 @@ Feature: Tab management 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-close with count 1 - And I run :tab-focus 2 And I run :tab-move with count 1 And I run :undo Then the following tabs should be open: From a474b9b24562f93d7df28f93498992809c26351e Mon Sep 17 00:00:00 2001 From: arza Date: Mon, 18 Mar 2019 09:49:57 +0200 Subject: [PATCH 5/6] Add a test for ":tab-focus last" after closing a lower number tab --- tests/end2end/features/tabs.feature | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/end2end/features/tabs.feature b/tests/end2end/features/tabs.feature index 0508bbd06..aea94c089 100644 --- a/tests/end2end/features/tabs.feature +++ b/tests/end2end/features/tabs.feature @@ -303,6 +303,16 @@ Feature: Tab management - data/numbers/3.txt - data/numbers/2.txt (active) + Scenario: :tab-focus last after closing a lower number tab + 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-close with count 1 + And I run :tab-focus last + Then the following tabs should be open: + - data/numbers/2.txt (active) + - data/numbers/3.txt + # tab-prev/tab-next Scenario: :tab-prev From ea5cd90e65a0c162e42fad616a6316c53709244c Mon Sep 17 00:00:00 2001 From: arza Date: Mon, 18 Mar 2019 09:57:20 +0200 Subject: [PATCH 6/6] Fix new tab position after closing tabs --- qutebrowser/mainwindow/tabbedbrowser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index d2fe08f67..cbf892ae7 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -697,6 +697,8 @@ class TabbedBrowser(QWidget): log.webview.debug("on_current_changed got called with invalid " "index {}".format(idx)) return + self._tab_insert_idx_left = self.widget.currentIndex() + self._tab_insert_idx_right = self.widget.currentIndex() + 1 if self._now_focused is tab: return @@ -724,8 +726,6 @@ class TabbedBrowser(QWidget): self._now_focused = tab self.current_tab_changed.emit(tab) QTimer.singleShot(0, self._update_window_title) - self._tab_insert_idx_left = self.widget.currentIndex() - self._tab_insert_idx_right = self.widget.currentIndex() + 1 @pyqtSlot() def on_cmd_return_pressed(self):