changeset 18002:2fdbcecab216 v8.1.1997

patch 8.1.1997: no redraw after a popup window filter is invoked Commit: https://github.com/vim/vim/commit/bcb4c8f9058c17dead61a0a384cb1e09c5fc459b Author: Bram Moolenaar <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Sep 2019 14:15:04 +0200
parents 1edd747222f0
children f4e09b355181
files src/popupwin.c src/testdir/dumps/Test_popupwin_menu_filter_5.dump src/testdir/test_popupwin.vim src/version.c
diffstat 4 files changed, 20 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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;
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
--- 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, "\<CR>")
 
   " clean up
   call StopVimInTerminal(buf)
--- 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,