patch 8.2.1966: popup becomes current window after closing a terminal window
Problem: Popup becomes current window after closing a terminal window.
Solution: When restoring the window after executing autocommands, check that
the window ID is still the same. (Naruhiko Nishino,
closes #7272)
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 43dbeb5..fdfa305 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -3737,5 +3737,26 @@
bwipe
endfunc
+func Test_popupwin_exiting_terminal()
+ CheckFeature terminal
+
+ " Tests that when creating a popup right after closing a terminal window does
+ " not make the popup the current window.
+ let winid = win_getid()
+ try
+ augroup Test_popupwin_exiting_terminal
+ autocmd!
+ autocmd WinEnter * :call popup_create('test', {})
+ augroup END
+ let bnr = term_start(&shell, #{term_finish: 'close'})
+ call term_sendkeys(bnr, "exit\r\n")
+ call WaitForAssert({-> assert_equal(winid, win_getid())})
+ finally
+ call popup_clear(1)
+ augroup Test_popupwin_exiting_terminal
+ autocmd!
+ augroup END
+ endtry
+endfunc
" vim: shiftwidth=2 sts=2