fix(ui): guard password/TLS prompt redraw while suspended

inp_get_line()/inp_get_password() issued an unconditional doupdate()
before their input loop. If such a prompt is raised while an external
editor is active (e.g. a reconnect password or TLS-cert prompt arriving
via session_process_events), that doupdate() writes over the editor and
clears isendwin(). Guard it with isendwin(), matching the _inp_write()
guard from the upstream "guard terminal writes while suspended" fix;
this closes the one suspended-write path upstream left open.
This commit is contained in:
2026-05-27 22:01:27 +03:00
parent 562bd28cff
commit aa5edea26d

View File

@@ -311,7 +311,10 @@ inp_get_line(void)
werase(inp_win);
wmove(inp_win, 0, 0);
_inp_win_update_virtual();
doupdate();
// Don't write to the terminal while suspended (external editor active).
if (!isendwin()) {
doupdate();
}
char* line = NULL;
while (!line) {
line = inp_readline();
@@ -338,7 +341,10 @@ inp_get_password(void)
werase(inp_win);
wmove(inp_win, 0, 0);
_inp_win_update_virtual();
doupdate();
// Don't write to the terminal while suspended (external editor active).
if (!isendwin()) {
doupdate();
}
char* password = NULL;
get_password = TRUE;
while (!password) {