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("\<F3>\<LeftMouse>\<F4>\<LeftDrag>\<LeftRelease>", "xt")
endfunc
map <silent> <F3> :call test_setmouse(&lines - 4, &columns / 2)<CR>
! map <silent> <F4> :call test_setmouse(&lines - 8, &columns / 2)<CR>
func Resize()
call feedkeys("\<F5>\<LeftMouse>\<F6>\<LeftDrag>\<LeftRelease>", "xt")
endfunc
! map <silent> <F5> :call test_setmouse(6, 41)<CR>
! map <silent> <F6> :call test_setmouse(7, 45)<CR>
END
call writefile(lines, 'XtestPopupDrag')
let buf = RunVimInTerminal('-S XtestPopupDrag', #{rows: 10})
--- 358,369 ----
call feedkeys("\<F3>\<LeftMouse>\<F4>\<LeftDrag>\<LeftRelease>", "xt")
endfunc
map <silent> <F3> :call test_setmouse(&lines - 4, &columns / 2)<CR>
! map <silent> <F4> :call test_setmouse(&lines - 8, &columns / 2 - 20)<CR>
func Resize()
call feedkeys("\<F5>\<LeftMouse>\<F6>\<LeftDrag>\<LeftRelease>", "xt")
endfunc
! map <silent> <F5> :call test_setmouse(6, 21)<CR>
! map <silent> <F6> :call test_setmouse(7, 25)<CR>
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 -- Br...@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 ///