0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.0.1789: BufWinEnter does not work well for a terminal window

Problem:    BufWinEnter does not work well for a terminal window.
Solution:   Do not trigger BufWinEnter when opening a terminal window.
This commit is contained in:
Bram Moolenaar 2018-05-03 20:40:20 +02:00
parent dddab90d22
commit 606cb8b08e
4 changed files with 8 additions and 9 deletions

View File

@ -469,6 +469,9 @@ BufWinEnter After a buffer is displayed in a window. This
existing buffer. But it does happen for a existing buffer. But it does happen for a
":split" with the name of the current buffer, ":split" with the name of the current buffer,
since it reloads that buffer. since it reloads that buffer.
Does not happen for a terminal window, because
it starts in Terminal-Job mode and Normal mode
commands won't work. Use |TerminalOpen| instead.
*BufWinLeave* *BufWinLeave*
BufWinLeave Before a buffer is removed from a window. BufWinLeave Before a buffer is removed from a window.
Not when it's still visible in another window. Not when it's still visible in another window.

View File

@ -605,13 +605,7 @@ term_start(
* a deadlock if the job is waiting for Vim to read. */ * a deadlock if the job is waiting for Vim to read. */
channel_set_nonblock(term->tl_job->jv_channel, PART_IN); channel_set_nonblock(term->tl_job->jv_channel, PART_IN);
if (old_curbuf == NULL) if (old_curbuf != NULL)
{
++curbuf->b_locked;
apply_autocmds(EVENT_BUFWINENTER, NULL, NULL, FALSE, curbuf);
--curbuf->b_locked;
}
else
{ {
--curbuf->b_nwindows; --curbuf->b_nwindows;
curbuf = old_curbuf; curbuf = old_curbuf;

View File

@ -32,7 +32,7 @@ func Run_shell_in_terminal(options)
endfunc endfunc
func Test_terminal_basic() func Test_terminal_basic()
au BufWinEnter * if &buftype == 'terminal' | let b:done = 'yes' | endif au TerminalOpen * let b:done = 'yes'
let buf = Run_shell_in_terminal({}) let buf = Run_shell_in_terminal({})
if has("unix") if has("unix")
@ -61,7 +61,7 @@ func Test_terminal_basic()
close close
call assert_equal("", bufname(buf)) call assert_equal("", bufname(buf))
au! BufWinEnter au! TerminalOpen
unlet g:job unlet g:job
endfunc endfunc

View File

@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1789,
/**/ /**/
1788, 1788,
/**/ /**/