summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/mainwindow/tabwidget.py13
-rw-r--r--qutebrowser/mainwindow/treetabwidget.py5
2 files changed, 16 insertions, 2 deletions
diff --git a/qutebrowser/mainwindow/tabwidget.py b/qutebrowser/mainwindow/tabwidget.py
index 066058f2c..4dfdb541b 100644
--- a/qutebrowser/mainwindow/tabwidget.py
+++ b/qutebrowser/mainwindow/tabwidget.py
@@ -65,6 +65,7 @@ class TabWidget(QTabWidget):
self.setDocumentMode(True)
self.setUsesScrollButtons(True)
bar.setDrawBase(False)
+ self._tab_title_update_disabled = False
self._init_config()
config.instance.changed.connect(self._init_config)
@@ -136,6 +137,9 @@ class TabWidget(QTabWidget):
field: A field name which was updated. If given, the title
is only set if the given field is in the template.
"""
+ if self._tab_title_update_disabled:
+ return
+
assert idx != -1
tab = self._tab_by_idx(idx)
assert tab is not None
@@ -253,8 +257,17 @@ class TabWidget(QTabWidget):
bar.setVisible(True)
bar.setUpdatesEnabled(True)
+ @contextlib.contextmanager
+ def _disable_tab_title_updates(self):
+ self._tab_title_update_disabled = True
+ yield
+ self._tab_title_update_disabled = False
+
def update_tab_titles(self):
"""Update all texts."""
+ if self._tab_title_update_disabled:
+ return
+
with self._toggle_visibility():
for idx in range(self.count()):
self.update_tab_title(idx)
diff --git a/qutebrowser/mainwindow/treetabwidget.py b/qutebrowser/mainwindow/treetabwidget.py
index d3d77d0eb..83a409b2a 100644
--- a/qutebrowser/mainwindow/treetabwidget.py
+++ b/qutebrowser/mainwindow/treetabwidget.py
@@ -107,6 +107,7 @@ class TreeTabWidget(TabWidget):
def tree_tab_update(self):
"""Update titles and positions."""
- self.update_tree_tab_visibility()
- self.update_tree_tab_positions()
+ with self._disable_tab_title_updates():
+ self.update_tree_tab_visibility()
+ self.update_tree_tab_positions()
self.update_tab_titles()