0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.3828: when opening a terminal from a timer first typed char is lost

Problem:    when opening a terminal from a timer the first typed character
            is lost. (Virginia Senioria)
Solution:   When opening a terminal while waiting for a character put K_IGNORE
            in the input buffer.
This commit is contained in:
Bram Moolenaar
2021-12-16 18:02:07 +00:00
parent f79cbf6512
commit 8103527da7
4 changed files with 52 additions and 2 deletions

View File

@@ -739,6 +739,23 @@ term_start(
curwin->w_buffer = curbuf;
++curbuf->b_nwindows;
}
else if (vgetc_busy
#ifdef FEAT_TIMERS
|| timer_busy
#endif
|| input_busy)
{
char_u ignore[4];
// When waiting for input need to return and possibly end up in
// terminal_loop() instead.
ignore[0] = K_SPECIAL;
ignore[1] = KS_EXTRA;
ignore[2] = KE_IGNORE;
ignore[3] = NUL;
ins_typebuf(ignore, REMAP_NONE, 0, TRUE, FALSE);
typebuf_was_filled = TRUE;
}
}
else
{