|| ScreenAttrs[off] != attr
|| exmode_active;
- if (need_redraw || force_redraw_this)
+ if ((need_redraw || force_redraw_this)
+#ifdef FEAT_TEXT_PROP
+ && popup_mask[row * screen_Columns + col] <= screen_zindex
+#endif
+ )
{
#if defined(FEAT_GUI) || defined(UNIX)
/* The bold trick makes a single row of pixels appear in the next
--- /dev/null
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @52|o+0#0000001#ffd7ff255|t|h|e|r| |t|a|b| @11
+|~+0#4040ff13#ffffff0| @52|a+0#0000001#ffd7ff255| |c+0#ff404010&|o|m@1|e|n|t| +0#0000001&|l|i|n|e| @6
+|:+0#0000000#ffffff0|c|a|l@1| |p|o|p|u|p|_|m|o|v|e|(|p|o|p|u|p|w|i|n|,| |{|'|l|i|n|e|'|:| |7|,| |'|c|o|l|'|:| |5@1|}|)| @3|t+0#0000001#ffd7ff255|h|i|s| |l|i|n|e| |w|i|l@1| |n|o|t| |f|i
+| +0#0000000#ffffff0@53|t+0#0000001#ffd7ff255| |h|e|r|e| @14
call term_sendkeys(buf, ":redraw\<CR>")
call VerifyScreenDump(buf, 'Test_popupwin_06', {})
+ " move popup over ruler
+ call term_sendkeys(buf, ":set cmdheight=2\<CR>")
+ call term_sendkeys(buf, ":call popup_move(popupwin, {'line': 7, 'col': 55})\<CR>")
+ call VerifyScreenDump(buf, 'Test_popupwin_07', {})
+
+ " clear all popups after moving the cursor a bit, so that ruler is updated
+ call term_sendkeys(buf, "axxx\<Esc>")
+ call term_wait(buf)
+ call term_sendkeys(buf, "0")
+ call term_wait(buf)
+ call term_sendkeys(buf, ":popupclear\<CR>")
+ call VerifyScreenDump(buf, 'Test_popupwin_08', {})
+
" clean up
call StopVimInTerminal(buf)
call delete('XtestPopup')