retronews

a featureful fork of the luke8086/retronews hn+lobste.rs tui
Log | Files | Refs | README | LICENSE

commit 96077541ed3b2bd6cc63a3d8c14f04554e169e83
parent da6e1adfea66b036e37c7016be77ae7488bbd001
Author: luke8086 <55237178+luke8086@users.noreply.github.com>
Date:   Tue,  2 Aug 2022 21:04:12 +0000

Refresh visible message on window resize

Diffstat:
Mretronews.py | 18++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/retronews.py b/retronews.py @@ -56,6 +56,7 @@ KEY_BINDINGS: dict[int, Callable[["AppState"], None]] = { curses.KEY_DOWN: lambda app: cmd_next(app), curses.KEY_PPAGE: lambda app: cmd_page_up(app), curses.KEY_NPAGE: lambda app: cmd_page_down(app), + curses.KEY_RESIZE: lambda app: cmd_resize(app), } | {ord(str(i)): lambda app, i=i: cmd_load_tab(app, i) for i in range(1, 10)} HELP_MENU = "q:Quit ?:Help p:Prev n:Next N:Next-Unread j:Down k:Up x:Close s:Star" @@ -475,6 +476,10 @@ def cmd_toggle_raw_mode(app: AppState) -> None: app_select_message(app, app.selected_message) +def cmd_resize(app: AppState) -> None: + app_refresh_message(app) + + def cmd_unknown(app: AppState) -> None: app.flash = "Unknown key" @@ -715,15 +720,22 @@ def app_safe_run(app: AppState, fn: Callable[[], T], flash: Optional[str]) -> Op return ret +def app_refresh_message(app: AppState) -> None: + app.pager_offset = 0 + + if (msg := app.selected_message) is not None: + msg.lines = msg_build_raw_lines(msg) if app.raw_mode else msg_build_lines(msg) + + def app_select_message(app: AppState, message: Optional[Message], show_pager: bool = False) -> None: app.selected_message = message + app_refresh_message(app) + if message is None or message.body is None: app.pager_visible = False return - message.lines = msg_build_raw_lines(message) if app.raw_mode else msg_build_lines(message) - if show_pager: app.pager_visible = True @@ -732,8 +744,6 @@ def app_select_message(app: AppState, message: Optional[Message], show_pager: bo db_save_message(app.db, message) db_load_read_comments(app.db, {message.thread_id: app.messages_by_id[message.thread_id]}) - app.pager_offset = 0 - def app_load_messages( app: AppState, messages: list[Message], selected_message_id: Optional[str] = None, show_pager: bool = False