patch 8.1.1517: when a popup changes all windows are redrawn
Problem: When a popup changes all windows are redrawn.
Solution: Only update the lines that were affected. Add a file for
profiling popup windows efficiency.
diff --git a/src/ui.c b/src/ui.c
index ed0e50a..4a684d2 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -3242,15 +3242,19 @@
|| curwin->w_cursor.col != old_cursor.col)
count |= CURSOR_MOVED; /* Cursor has moved */
-#ifdef FEAT_FOLDING
+# ifdef FEAT_FOLDING
if (mouse_char == '+')
count |= MOUSE_FOLD_OPEN;
else if (mouse_char != ' ')
count |= MOUSE_FOLD_CLOSE;
-#endif
+# endif
return count;
}
+#endif
+
+// Functions also used for popup windows.
+#if defined(FEAT_MOUSE) || defined(FEAT_TEXT_PROP) || defined(PROTO)
/*
* Compute the position in the buffer line from the posn on the screen in
@@ -3347,7 +3351,7 @@
* Returns NULL when something is wrong.
*/
win_T *
-mouse_find_win(int *rowp, int *colp UNUSED)
+mouse_find_win(int *rowp, int *colp)
{
frame_T *fp;
win_T *wp;