summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-01 21:27:51 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-01 21:27:51 +0100
commitc478ee3d83fab0dba46740f2023c35f743f88316 (patch)
treef19ab223e5d3fa36b1dcd77fe5ca6cdc089ab04f
parent57cf4973a283941c92744554474b2c52ce892fd1 (diff)
downloadvim-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)
-rw-r--r--src/os_win32.c26
-rw-r--r--src/version.c2
2 files changed, 9 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
diff --git a/src/version.c b/src/version.c
index bbbf9f23e..251782da2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2076,
+/**/
2075,
/**/
2074,