patch 8.2.0011: screen updating wrong when opeing preview window
Problem: Screen updating wrong when opeing preview window.
Solution: Redraw the window when the preview window opens.
diff --git a/src/popupmenu.c b/src/popupmenu.c
index ab2ce55..cccde47 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -913,7 +913,7 @@
// When the preview window was resized we need to
// update the view on the buffer. Only go back to
// the window when needed, otherwise it will always be
- // redraw.
+ // redrawn.
if (resized && win_valid(curwin_save))
{
++no_u_sync;
@@ -926,8 +926,9 @@
// Enable updating the status lines.
pum_pretend_not_visible = TRUE;
// But don't draw text at the new popup menu position,
- // it causes flicker.
- pum_will_redraw = TRUE;
+ // it causes flicker. When resizing we need to draw
+ // anyway, the position may change later.
+ pum_will_redraw = !resized;
update_screen(0);
pum_pretend_not_visible = FALSE;
pum_will_redraw = FALSE;
@@ -949,7 +950,7 @@
// May need to update the screen again when there are
// autocommands involved.
pum_pretend_not_visible = TRUE;
- pum_will_redraw = TRUE;
+ pum_will_redraw = !resized;
update_screen(0);
pum_pretend_not_visible = FALSE;
pum_will_redraw = FALSE;