To: vim_dev@googlegroups.com Subject: Patch 8.1.1917 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1917 Problem: Non-current window is not redrawn when moving popup. (Ben Jackson) Solution: Redraw all windows under a popup. (closes #4860) Files: src/popupwin.c, src/testdir/test_popupwin.vim, src/testdir/dumps/Test_popupwin_drag_01.dump, src/testdir/dumps/Test_popupwin_drag_02.dump, src/testdir/dumps/Test_popupwin_drag_03.dump *** ../vim-8.1.1916/src/popupwin.c 2019-08-21 22:25:26.030016778 +0200 --- src/popupwin.c 2019-08-24 14:41:53.089353365 +0200 *************** *** 1219,1225 **** wp->w_popup_last_changedtick = CHANGEDTICK(wp->w_buffer); // Need to update popup_mask if the position or size changed. ! // And redraw windows that were behind the popup. if (org_winrow != wp->w_winrow || org_wincol != wp->w_wincol || org_leftcol != wp->w_leftcol --- 1219,1225 ---- wp->w_popup_last_changedtick = CHANGEDTICK(wp->w_buffer); // Need to update popup_mask if the position or size changed. ! // And redraw windows and statuslines that were behind the popup. if (org_winrow != wp->w_winrow || org_wincol != wp->w_wincol || org_leftcol != wp->w_leftcol *************** *** 1227,1234 **** || org_width != wp->w_width || org_height != wp->w_height) { - redraw_all_later(VALID); redraw_win_later(wp, NOT_VALID); if (wp->w_popup_flags & POPF_ON_CMDLINE) clear_cmdline = TRUE; popup_mask_refresh = TRUE; --- 1227,1235 ---- || org_width != wp->w_width || org_height != wp->w_height) { redraw_win_later(wp, NOT_VALID); + redraw_all_later(SOME_VALID); + status_redraw_all(); if (wp->w_popup_flags & POPF_ON_CMDLINE) clear_cmdline = TRUE; popup_mask_refresh = TRUE; *** ../vim-8.1.1916/src/testdir/test_popupwin.vim 2019-08-21 22:49:48.111267837 +0200 --- src/testdir/test_popupwin.vim 2019-08-24 14:37:45.750502447 +0200 *************** *** 343,348 **** --- 343,353 ---- " create a popup that covers the command line let lines =<< trim END call setline(1, range(1, 20)) + split + vsplit + $wincmd w + vsplit + 1wincmd w let winid = popup_create(['1111', '222222', '33333'], #{ \ drag: 1, \ resize: 1, *************** *** 353,364 **** call feedkeys("\\\\\", "xt") endfunc map :call test_setmouse(&lines - 4, &columns / 2) ! map :call test_setmouse(&lines - 8, &columns / 2) func Resize() call feedkeys("\\\\\", "xt") endfunc ! map :call test_setmouse(6, 41) ! map :call test_setmouse(7, 45) END call writefile(lines, 'XtestPopupDrag') let buf = RunVimInTerminal('-S XtestPopupDrag', #{rows: 10}) --- 358,369 ---- call feedkeys("\\\\\", "xt") endfunc map :call test_setmouse(&lines - 4, &columns / 2) ! map :call test_setmouse(&lines - 8, &columns / 2 - 20) func Resize() call feedkeys("\\\\\", "xt") endfunc ! map :call test_setmouse(6, 21) ! map :call test_setmouse(7, 25) END call writefile(lines, 'XtestPopupDrag') let buf = RunVimInTerminal('-S XtestPopupDrag', #{rows: 10}) *** ../vim-8.1.1916/src/testdir/dumps/Test_popupwin_drag_01.dump 2019-08-01 21:09:49.923160274 +0200 --- src/testdir/dumps/Test_popupwin_drag_01.dump 2019-08-24 14:38:26.806314292 +0200 *************** *** 1,10 **** ! >1+0&#ffffff0| @73 ! |2| @73 ! |3| @73 ! |4| @73 ! |5| @73 ! |6| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#0000000#ffffff0@33 ! |7| @31|║+0#0000001#ffd7ff255|1@3| @1|║| +0#0000000#ffffff0@33 ! |8| @31|║+0#0000001#ffd7ff255|2@5|║| +0#0000000#ffffff0@33 ! |9| @31|║+0#0000001#ffd7ff255|3@4| |║| +0#0000000#ffffff0@33 ! @33|╚+0#0000001#ffd7ff255|═@5|⇲| +0#0000000#ffffff0@15|1|,|1| @10|T|o|p| --- 1,10 ---- ! >1+0&#ffffff0| @35||+1&&|1+0&&| @35 ! |2| @35||+1&&|2+0&&| @35 ! |3| @35||+1&&|3+0&&| @35 ! |4| @35||+1&&|4+0&&| @35 ! |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! |1+0&&| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#0000000#ffffff0@33 ! |2| @31|║+0#0000001#ffd7ff255|1@3| @1|║| +0#0000000#ffffff0@33 ! |3| @31|║+0#0000001#ffd7ff255|2@5|║| +0#0000000#ffffff0@33 ! |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @10|║+0#0000001#ffd7ff255|3@4| |║| +1#0000000#ffffff0|N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! | +0&&@32|╚+0#0000001#ffd7ff255|═@5|⇲| +0#0000000#ffffff0@33 *** ../vim-8.1.1916/src/testdir/dumps/Test_popupwin_drag_02.dump 2019-08-01 21:09:49.923160274 +0200 --- src/testdir/dumps/Test_popupwin_drag_02.dump 2019-08-24 14:42:02.325309812 +0200 *************** *** 1,10 **** ! >1+0&#ffffff0| @73 ! |2| @31|╔+0#0000001#ffd7ff255|═@5|╗| +0#0000000#ffffff0@33 ! |3| @31|║+0#0000001#ffd7ff255|1@3| @1|║| +0#0000000#ffffff0@33 ! |4| @31|║+0#0000001#ffd7ff255|2@5|║| +0#0000000#ffffff0@33 ! |5| @31|║+0#0000001#ffd7ff255|3@4| |║| +0#0000000#ffffff0@33 ! |6| @31|╚+0#0000001#ffd7ff255|═@5|⇲| +0#0000000#ffffff0@33 ! |7| @73 ! |8| @73 ! |9| @73 ! @57|1|,|1| @10|T|o|p| --- 1,10 ---- ! >1+0&#ffffff0| @35||+1&&|1+0&&| @35 ! |2| @11|╔+0#0000001#ffd7ff255|═@5|╗| +0#0000000#ffffff0@15||+1&&|2+0&&| @35 ! |3| @11|║+0#0000001#ffd7ff255|1@3| @1|║| +0#0000000#ffffff0@15||+1&&|3+0&&| @35 ! |4| @11|║+0#0000001#ffd7ff255|2@5|║| +0#0000000#ffffff0@15||+1&&|4+0&&| @35 ! |[+3&&|N|o| |N|a|m|e|]| |[|+|]|║+0#0000001#ffd7ff255|3@4| |║|1+3#0000000#ffffff0| @11|T|o|p| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! |1+0&&| @11|╚+0#0000001#ffd7ff255|═@5|⇲| +0#0000000#ffffff0@15||+1&&|1+0&&| @35 ! |2| @35||+1&&|2+0&&| @35 ! |3| @35||+1&&|3+0&&| @35 ! |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p| |[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! | +0&&@74 *** ../vim-8.1.1916/src/testdir/dumps/Test_popupwin_drag_03.dump 2019-08-01 21:09:49.923160274 +0200 --- src/testdir/dumps/Test_popupwin_drag_03.dump 2019-08-24 14:42:03.381304829 +0200 *************** *** 1,10 **** ! >1+0&#ffffff0| @73 ! |2| @31|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@29 ! |3| @31|║+0#0000001#ffd7ff255|1@3| @5|║| +0#0000000#ffffff0@29 ! |4| @31|║+0#0000001#ffd7ff255|2@5| @3|║| +0#0000000#ffffff0@29 ! |5| @31|║+0#0000001#ffd7ff255|3@4| @4|║| +0#0000000#ffffff0@29 ! |6| @31|║+0#0000001#ffd7ff255| +0#4040ff13&@9|║+0#0000001&| +0#0000000#ffffff0@29 ! |7| @31|╚+0#0000001#ffd7ff255|═@9|⇲| +0#0000000#ffffff0@29 ! |8| @73 ! |9| @73 ! |:|c|a|l@1| |R|e|s|i|z|e|(|)| @42|1|,|1| @10|T|o|p| --- 1,10 ---- ! >1+0&#ffffff0| @35||+1&&|1+0&&| @35 ! |2| @11|╔+0#0000001#ffd7ff255|═@9|╗| +0#0000000#ffffff0@11||+1&&|2+0&&| @35 ! |3| @11|║+0#0000001#ffd7ff255|1@3| @5|║| +0#0000000#ffffff0@11||+1&&|3+0&&| @35 ! |4| @11|║+0#0000001#ffd7ff255|2@5| @3|║| +0#0000000#ffffff0@11||+1&&|4+0&&| @35 ! |[+3&&|N|o| |N|a|m|e|]| |[|+|]|║+0#0000001#ffd7ff255|3@4| @4|║| +3#0000000#ffffff0@8|T|o|p| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! |1+0&&| @11|║+0#0000001#ffd7ff255| +0#4040ff13&@9|║+0#0000001&| +0#0000000#ffffff0@11||+1&&|1+0&&| @35 ! |2| @11|╚+0#0000001#ffd7ff255|═@9|⇲| +0#0000000#ffffff0@11||+1&&|2+0&&| @35 ! |3| @35||+1&&|3+0&&| @35 ! |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p| |[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p ! |:+0&&|c|a|l@1| |R|e|s|i|z|e|(|)| @60 *** ../vim-8.1.1916/src/version.c 2019-08-24 14:16:28.264782382 +0200 --- src/version.c 2019-08-24 14:45:50.508223051 +0200 *************** *** 763,764 **** --- 763,766 ---- { /* Add new patch number below this line */ + /**/ + 1917, /**/ -- hundred-and-one symptoms of being an internet addict: 106. When told to "go to your room" you inform your parents that you can't...because you were kicked out and banned. /// 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 ///