patch 8.2.1997: window changes when using bufload() while in a terminal popup
Problem: Window changes when using bufload() while in a terminal popup.
Solution: When searching for a window by ID also find a popup window.
(closes #7307)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 7d6bdbc..7351647 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1237,6 +1237,23 @@
unlet s:winid
endfunc
+func Test_terminal_popup_bufload()
+ let termbuf = term_start(&shell, #{hidden: v:true, term_finish: 'close'})
+ let winid = popup_create(termbuf, {})
+ sleep 50m
+
+ let newbuf = bufadd('')
+ call bufload(newbuf)
+ call setbufline(newbuf, 1, 'foobar')
+
+ " must not have switched to another window
+ call assert_equal(winid, win_getid())
+
+ call feedkeys("exit\<CR>", 'xt')
+ sleep 50m
+ exe 'bwipe! ' .. newbuf
+endfunc
+
func Test_terminal_popup_insert_cmd()
CheckUnix