From 2abdd763c1bff1ab786bc3ebe3fac04a8dc55dc4 Mon Sep 17 00:00:00 2001 From: pdxlocations Date: Mon, 20 Jan 2025 20:51:03 -0800 Subject: [PATCH] fix text wrap line count --- ui/curses_ui.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ui/curses_ui.py b/ui/curses_ui.py index 05d2952..b6f5302 100644 --- a/ui/curses_ui.py +++ b/ui/curses_ui.py @@ -108,7 +108,23 @@ def draw_messages_window(): max_scroll_position = max(0, num_messages - max_messages) start_index = max(0, min(globals.selected_message, max_scroll_position)) - # Display messages starting from the calculated start index + # Dynamically calculate max_messages based on visible messages and wraps + row = 1 + visible_message_count = 0 + for index, (prefix, message) in enumerate(messages[start_index:], start=start_index): + full_message = f"{prefix}{message}" + wrapped_lines = textwrap.wrap(full_message, messages_win.getmaxyx()[1] - 2) + + if row + len(wrapped_lines) - 1 > messages_win.getmaxyx()[0] - 2: # Check if it fits in the window + break + + visible_message_count += 1 + row += len(wrapped_lines) + + # Adjust max_messages to match visible messages + max_messages = visible_message_count + + # Re-render the visible messages row = 1 for index, (prefix, message) in enumerate(messages[start_index:start_index + max_messages], start=start_index): full_message = f"{prefix}{message}"