patch 8.1.1448: statusline is sometimes drawn on top of popup
Problem: Statusline is sometimes drawn on top of popup.
Solution: Redraw popups after the statusline. (Naruhiko Nishino,
closes #4468)
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 4ed3b1c..0eb171a 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -610,3 +610,40 @@
call assert_equal(2, pos.width)
call assert_equal(3, pos.height)
endfunc
+
+func Test_popup_never_behind()
+ if !CanRunVimInTerminal()
+ return
+ endif
+ " +-----------------------------+
+ " | | |
+ " | | |
+ " | | |
+ " | line1 |
+ " |------------line2------------|
+ " | line3 |
+ " | line4 |
+ " | |
+ " | |
+ " +-----------------------------+
+ let lines =<< trim END
+ only
+ split
+ vsplit
+ let info_window1 = getwininfo()[0]
+ let line = info_window1['height']
+ let col = info_window1['width']
+ call popup_create(['line1', 'line2', 'line3', 'line4'], {
+ \ 'line' : line,
+ \ 'col' : col,
+ \ })
+ END
+ call writefile(lines, 'XtestPopupBehind')
+ let buf = RunVimInTerminal('-S XtestPopupBehind', {'rows': 10})
+ call term_sendkeys(buf, "\<C-W>w")
+ call VerifyScreenDump(buf, 'Test_popupwin_behind', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ call delete('XtestPopupBehind')
+endfunc