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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user