To: vim_dev@googlegroups.com Subject: Patch 8.1.1448 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1448 Problem: Statusline is sometimes drawn on top of popup. Solution: Redraw popups after the statusline. (Naruhiko Nishino, closes #4468) Files: src/screen.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_behind.dump *** ../vim-8.1.1447/src/screen.c 2019-06-01 22:15:10.215177111 +0200 --- src/screen.c 2019-06-02 14:09:46.617667197 +0200 *************** *** 823,829 **** did_intro = TRUE; #ifdef FEAT_TEXT_PROP ! // Display popup windows on top of the others. update_popups(); #endif --- 823,829 ---- did_intro = TRUE; #ifdef FEAT_TEXT_PROP ! // Display popup windows on top of the windows. update_popups(); #endif *************** *** 987,992 **** --- 987,997 ---- win_redr_status(wp, FALSE); } + #ifdef FEAT_TEXT_PROP + // Display popup windows on top of the others. + update_popups(); + #endif + update_finish(); } #endif *************** *** 1211,1216 **** --- 1216,1226 ---- ) win_redr_status(wp, FALSE); + #ifdef FEAT_TEXT_PROP + // Display popup windows on top of everything. + update_popups(); + #endif + update_finish(); } #endif *************** *** 6795,6800 **** --- 6805,6815 ---- win_redr_status(wp, FALSE); if (redraw_tabline) draw_tabline(); + + #ifdef FEAT_TEXT_PROP + // Display popup windows on top of the status lines. + update_popups(); + #endif } #if defined(FEAT_WILDMENU) || defined(PROTO) *************** *** 11101,11106 **** --- 11116,11126 ---- /* Redraw the tab pages line if needed. */ if (redraw_tabline) draw_tabline(); + + #ifdef FEAT_TEXT_PROP + // Display popup windows on top of everything. + update_popups(); + #endif } #ifdef FEAT_CMDL_INFO *** ../vim-8.1.1447/src/testdir/test_popupwin.vim 2019-06-02 13:22:08.372506989 +0200 --- src/testdir/test_popupwin.vim 2019-06-02 14:06:45.810620422 +0200 *************** *** 610,612 **** --- 610,649 ---- 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, "\w") + call VerifyScreenDump(buf, 'Test_popupwin_behind', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('XtestPopupBehind') + endfunc *** ../vim-8.1.1447/src/testdir/dumps/Test_popupwin_behind.dump 2019-06-02 14:11:40.761078512 +0200 --- src/testdir/dumps/Test_popupwin_behind.dump 2019-06-02 14:09:56.249617679 +0200 *************** *** 0 **** --- 1,10 ---- + | +0&#ffffff0@36||+1&&> +0&&@36 + |~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35 + |~| @35||+1#0000000&|~+0#4040ff13&| @35 + |~| @34|l+0#0000001#ffd7ff255|i|n|e|1| +0#4040ff13#ffffff0@33 + |[+1#0000000&|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l|l+0#0000001#ffd7ff255|i|n|e|2| +3#0000000#ffffff0|N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1 + | +0&&@35|l+0#0000001#ffd7ff255|i|n|e|3| +0#0000000#ffffff0@33 + |~+0#4040ff13&| @34|l+0#0000001#ffd7ff255|i|n|e|4| +0#4040ff13#ffffff0@33 + |~| @73 + |[+1#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1 + |A+0&&|l|r|e|a|d|y| |o|n|l|y| |o|n|e| |w|i|n|d|o|w| @51 *** ../vim-8.1.1447/src/version.c 2019-06-02 13:22:08.372506989 +0200 --- src/version.c 2019-06-02 13:51:03.867557478 +0200 *************** *** 769,770 **** --- 769,772 ---- { /* Add new patch number below this line */ + /**/ + 1448, /**/ -- hundred-and-one symptoms of being an internet addict: 90. Instead of calling you to dinner, your spouse sends e-mail. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///