Fix traceback when opening popup in neovim with log visible

* We enter the popup window
* some log data is received, so we update the log buffer and jump to the
  log window to scroll it
* meanwhile, the WinLeave auto command on the popup window fires and
  closes the popup window
* Having scrolled the log window, we try to jump back to the popup
  window, which by now has been closed.

Fixes #390
This commit is contained in:
Ben Jackson 2021-04-29 10:02:23 +01:00
commit 0c88cc8bad

View file

@ -159,15 +159,16 @@ function! s:_OnCommandEvent( category, id, data, event ) abort
call setbufvar( buffer, '&modified', 0 )
endtry
" if the buffer is visible, scroll it
" if the buffer is visible, scroll it, but don't allow autocommands to fire,
" as this may close the current window!
let w = bufwinnr( buffer )
if w > 0
let cw = winnr()
try
execute w . 'wincmd w'
normal! Gz-
noautocmd execute w . 'wincmd w'
noautocmd normal! Gz-
finally
execute cw . 'wincmd w'
noautocmd execute cw . 'wincmd w'
endtry
endif
elseif a:event ==# 'exit'