patch 8.1.1922: in diff mode global operations can be very slow
Problem: In diff mode global operations can be very slow.
Solution: Do not call diff_redraw() many times, call it once when redrawing.
And also don't update folds multiple times.
diff --git a/src/screen.c b/src/screen.c
index 5043c0d..1681e1c 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -567,6 +567,12 @@
}
#endif
+#ifdef FEAT_DIFF
+ // May have postponed updating diffs.
+ if (need_diff_redraw)
+ diff_redraw(TRUE);
+#endif
+
if (must_redraw)
{
if (type < must_redraw) /* use maximal type */