From ad57467c9343b1010d00941cd4b981a46c23ec2c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 30 Aug 2020 20:02:02 +0530 Subject: [PATCH] Avoid exception when generating minimal borders for empty tab in tall/vertical layouts --- kitty/layout/tall.py | 7 +++++-- kitty/layout/vertical.py | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/kitty/layout/tall.py b/kitty/layout/tall.py index 3d18ff90e..d59c23420 100644 --- a/kitty/layout/tall.py +++ b/kitty/layout/tall.py @@ -204,9 +204,12 @@ class Tall(Layout): def minimal_borders(self, all_windows: WindowList) -> Generator[BorderLine, None, None]: num = all_windows.num_groups - if num == 1 or not lgd.draw_minimal_borders: + if num < 2 or not lgd.draw_minimal_borders: return - bw = next(all_windows.iter_all_layoutable_groups()).effective_border() + try: + bw = next(all_windows.iter_all_layoutable_groups()).effective_border() + except StopIteration: + bw = 0 if not bw: return if num <= self.num_full_size_windows + 1: diff --git a/kitty/layout/vertical.py b/kitty/layout/vertical.py index 254205c90..ce253179e 100644 --- a/kitty/layout/vertical.py +++ b/kitty/layout/vertical.py @@ -24,7 +24,10 @@ def borders( borders: List[BorderLine] = [] active_group = all_windows.active_group needs_borders_map = all_windows.compute_needs_borders_map(lgd.draw_active_borders) - bw = next(all_windows.iter_all_layoutable_groups()).effective_border() + try: + bw = next(all_windows.iter_all_layoutable_groups()).effective_border() + except StopIteration: + bw = 0 if not bw: return @@ -112,7 +115,7 @@ class Vertical(Layout): def minimal_borders(self, all_windows: WindowList) -> Generator[BorderLine, None, None]: window_count = all_windows.num_groups - if window_count == 1 or not lgd.draw_minimal_borders: + if window_count < 2 or not lgd.draw_minimal_borders: return yield from borders(self.generate_layout_data(all_windows), self.main_is_horizontal, all_windows)