mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.0.1276: key lost when window closed in exit callback
Problem: Typed key is lost when the terminal window is closed in exit callback. (Gabriel Barta) Solution: When the current window changes bail out of the wait loop. (closes #2302)
This commit is contained in:
@@ -6300,6 +6300,8 @@ has_non_ascii(char_u *s)
|
||||
void
|
||||
parse_queued_messages(void)
|
||||
{
|
||||
win_T *old_curwin = curwin;
|
||||
|
||||
/* For Win32 mch_breakcheck() does not check for input, do it here. */
|
||||
# if defined(WIN32) && defined(FEAT_JOB_CHANNEL)
|
||||
channel_handle_events(FALSE);
|
||||
@@ -6324,6 +6326,11 @@ parse_queued_messages(void)
|
||||
/* Check if any jobs have ended. */
|
||||
job_check_ended();
|
||||
# endif
|
||||
|
||||
/* If the current window changed we need to bail out of the waiting loop.
|
||||
* E.g. when a job exit callback closes the terminal window. */
|
||||
if (curwin != old_curwin)
|
||||
ins_char_typebuf(K_IGNORE);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -38,8 +38,6 @@
|
||||
* in tl_scrollback are no longer used.
|
||||
*
|
||||
* TODO:
|
||||
* - Termdebug: issue #2154 might be avoided by adding -quiet to gdb?
|
||||
* patch by Christian, 2017 Oct 23.
|
||||
* - in GUI vertical split causes problems. Cursor is flickering. (Hirohito
|
||||
* Higashi, 2017 Sep 19)
|
||||
* - double click in Window toolbar starts Visual mode (but not always?).
|
||||
@@ -1581,8 +1579,12 @@ terminal_loop(int blocking)
|
||||
|
||||
c = term_vgetc();
|
||||
if (!term_use_loop())
|
||||
{
|
||||
/* job finished while waiting for a character */
|
||||
if (c != K_IGNORE)
|
||||
vungetc(c);
|
||||
break;
|
||||
}
|
||||
if (c == K_IGNORE)
|
||||
continue;
|
||||
|
||||
|
@@ -761,6 +761,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1276,
|
||||
/**/
|
||||
1275,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user