# HG changeset patch # User Bram Moolenaar # Date 1567858504 -7200 # Node ID 2fdbcecab216eef536a111c40d5982cb7bfaabcd # Parent 1edd747222f0911492c1507d7cb8fe41d10f4acf patch 8.1.1997: no redraw after a popup window filter is invoked Commit: https://github.com/vim/vim/commit/bcb4c8f9058c17dead61a0a384cb1e09c5fc459b Author: Bram Moolenaar Date: Sat Sep 7 14:06:52 2019 +0200 patch 8.1.1997: no redraw after a popup window filter is invoked Problem: No redraw after a popup window filter is invoked. Solution: Redraw if needed. diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -2802,6 +2802,8 @@ popup_do_filter(int c) && (wp->w_filter_mode & state) != 0) res = invoke_popup_filter(wp, c); + if (must_redraw) + redraw_after_callback(FALSE); recursive = FALSE; KeyTyped = save_KeyTyped; return res; diff --git a/src/testdir/dumps/Test_popupwin_menu_filter_5.dump b/src/testdir/dumps/Test_popupwin_menu_filter_5.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_popupwin_menu_filter_5.dump @@ -0,0 +1,10 @@ +| +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|:+0#0000000&> @73 diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2159,9 +2159,9 @@ func Test_popup_menu_filter() call win_execute(a:winid, "call setpos('.', [0, line('.') - 1, 1, 0])") return 1 endif - if a:key == 'x' + if a:key == ':' call popup_close(a:winid) - return 1 + return 0 endif return 0 endfunction @@ -2185,7 +2185,10 @@ func Test_popup_menu_filter() call term_sendkeys(buf, "0") call VerifyScreenDump(buf, 'Test_popupwin_menu_filter_4', {}) - call term_sendkeys(buf, "x") + " check that when the popup is closed in the filter the screen is redrawn + call term_sendkeys(buf, ":") + call VerifyScreenDump(buf, 'Test_popupwin_menu_filter_5', {}) + call term_sendkeys(buf, "\") " clean up call StopVimInTerminal(buf) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1997, +/**/ 1996, /**/ 1995,