diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-01 21:27:51 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-01 21:27:51 +0100 |
commit | c478ee3d83fab0dba46740f2023c35f743f88316 (patch) | |
tree | f19ab223e5d3fa36b1dcd77fe5ca6cdc089ab04f /src/os_win32.c | |
parent | 57cf4973a283941c92744554474b2c52ce892fd1 (diff) | |
download | vim-git-c478ee3d83fab0dba46740f2023c35f743f88316.tar.gz |
patch 8.2.2076: MS-Windows console: sometimes drops typed charactersv8.2.2076
Problem: MS-Windows console: sometimes drops typed characters.
Solution: Do not wait longer than 10 msec for input. (issue #7164)
Diffstat (limited to 'src/os_win32.c')
-rw-r--r-- | src/os_win32.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/os_win32.c b/src/os_win32.c index 60c04632c..21b9b0127 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -1588,26 +1588,14 @@ WaitForChar(long msec, int ignore_input) { DWORD dwWaitTime = dwEndTime - dwNow; -# ifdef FEAT_JOB_CHANNEL - // Check channel while waiting for input. - if (dwWaitTime > 100) - { - dwWaitTime = 100; - // If there is readahead then parse_queued_messages() timed out - // and we should call it again soon. - if (channel_any_readahead()) - dwWaitTime = 10; - } -# endif -# ifdef FEAT_BEVAL_GUI - if (p_beval && dwWaitTime > 100) - // The 'balloonexpr' may indirectly invoke a callback while - // waiting for a character, need to check often. - dwWaitTime = 100; -# endif + // Don't wait for more than 11 msec to avoid dropping characters, + // check channel while waiting for input and handle a callback from + // 'balloonexpr'. + if (dwWaitTime > 11) + dwWaitTime = 11; + # ifdef FEAT_MZSCHEME - if (mzthreads_allowed() && p_mzq > 0 - && (msec < 0 || (long)dwWaitTime > p_mzq)) + if (mzthreads_allowed() && p_mzq > 0 && (long)dwWaitTime > p_mzq) dwWaitTime = p_mzq; // don't wait longer than 'mzquantum' # endif # ifdef FEAT_TIMERS |