summaryrefslogtreecommitdiff
path: root/qutebrowser/mainwindow/treetabbedbrowser.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/mainwindow/treetabbedbrowser.py')
-rw-r--r--qutebrowser/mainwindow/treetabbedbrowser.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/qutebrowser/mainwindow/treetabbedbrowser.py b/qutebrowser/mainwindow/treetabbedbrowser.py
index eacc9f4c3..2fe6d4c84 100644
--- a/qutebrowser/mainwindow/treetabbedbrowser.py
+++ b/qutebrowser/mainwindow/treetabbedbrowser.py
@@ -81,22 +81,22 @@ class TreeTabbedBrowser(TabbedBrowser):
def _remove_tab(self, tab, *, add_undo=True, new_undo=True, crashed=False):
"""Handle children positioning after a tab is removed."""
- node = tab.node
- # FIXME after the fixme in _add_undo_entry is resolved, no need
- # to save descendents
- descendents = tuple(node.traverse(render_collapsed=True))
if not tab.url().isEmpty() and tab.url().isValid() and add_undo:
idx = self.widget.indexOf(tab)
self._add_undo_entry(tab, idx, new_undo)
+ node = tab.node
parent = node.parent
if node.collapsed:
# Collapsed nodes have already been removed from the TabWidget so
# we can't ask super() to dispose of them and need to do it
# ourselves.
- for descendent in descendents:
+ for descendent in node.traverse(
+ order=notree.TraverseOrder.POST_R,
+ render_collapsed=True
+ ):
descendent.parent = None
descendent_tab = descendent.value
descendent_tab.private_api.shutdown()