diff --git a/src/qtile_bonsai/layout.py b/src/qtile_bonsai/layout.py index 66523b8..d1e03c2 100644 --- a/src/qtile_bonsai/layout.py +++ b/src/qtile_bonsai/layout.py @@ -244,11 +244,7 @@ def layout(self, windows: Sequence[Window], screen_rect: ScreenRect): for each window, as there are other elements such as tab-bar panels to process as well. """ - for node in self._tree.iter_walk(): - if self._tree.is_visible(node): - node.render(screen_rect, self._tree) - else: - node.hide() + self._tree.render(screen_rect) def configure(self, window: Window, screen_rect: ScreenRect): """Defined since this is an abstract method, but not implemented since things @@ -358,7 +354,7 @@ def hide(self): # consistenty with the default tab layout here. self._on_next_window = self._handle_default_next_window - self._hide_all_internal_windows() + self._tree.hide() def finalize(self): self._persist_tree_state() @@ -855,10 +851,6 @@ def _handle_rename_tab(self, new_title: str): tab.title = new_title self._request_relayout() - def _hide_all_internal_windows(self): - for node in self._tree.iter_walk(): - node.hide() - def _request_focus(self, pane: BonsaiPane): self.group.focus(pane.window) diff --git a/src/qtile_bonsai/tree.py b/src/qtile_bonsai/tree.py index 0f7d4b4..6c71643 100644 --- a/src/qtile_bonsai/tree.py +++ b/src/qtile_bonsai/tree.py @@ -222,10 +222,21 @@ def create_tab(self, title: str = "") -> BonsaiTab: def create_tab_container(self) -> BonsaiTabContainer: return BonsaiTabContainer() + def render(self, screen_rect: ScreenRect): + for node in self.iter_walk(): + if self.is_visible(node): + node.render(screen_rect, self) + else: + node.hide() + def finalize(self): for node in self.iter_walk(): node.finalize() + def hide(self): + for node in self.iter_walk(): + node.hide() + def place_window_using_box( window: Window | Internal, box: Box, border_color: str, screen_rect: ScreenRect