From 17e31565e2bea5ceb0dc30111462251fcc9e9084 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 21 Jan 2022 21:46:27 +0530 Subject: [PATCH] Get it working even with 2 row windows assuming they are wide enough to fit the title on a single line --- kittens/ask/main.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kittens/ask/main.py b/kittens/ask/main.py index 1ef1c0c8c..95fa37aa8 100644 --- a/kittens/ask/main.py +++ b/kittens/ask/main.py @@ -174,8 +174,9 @@ class Choose(Handler): self.print(end='\r\n'*y) if self.cli_opts.message: y += self.draw_long_text(self.cli_opts.message) - self.print() - y += 1 + if self.screen_size.rows > 2: + self.print() + y += 1 if self.cli_opts.type == 'yesno': self.draw_yesno(y) else: @@ -187,11 +188,11 @@ class Choose(Handler): current_ranges: Dict[str, int] = {} width = self.screen_size.cols - 2 - def commit_line() -> None: + def commit_line(end: str = '\r\n') -> None: nonlocal current_line, y extra = (width - wcswidth(current_line)) // 2 x = extra + 1 - self.print(' ' * x + current_line) + self.print(' ' * x + current_line, end=end) for letter, sz in current_ranges.items(): self.clickable_ranges[letter] = Range(x, x + sz - 3, y) x += sz @@ -210,7 +211,7 @@ class Choose(Handler): current_line += text current_ranges[letter] = sz if current_line: - commit_line() + commit_line(end='') def draw_yesno(self, y: int) -> None: sep = ' ' * 3