patch 8.0.1449: slow redrawing with DirectX
Problem: Slow redrawing with DirectX.
Solution: Avoid calling gui_mch_flush() unnecessarily, especially when
updating the cursor. (Ken Takata, closes #2560)
diff --git a/src/term.c b/src/term.c
index ffa3944..6303e10 100644
--- a/src/term.c
+++ b/src/term.c
@@ -2501,6 +2501,27 @@
}
}
+/*
+ * out_flush_cursor(): flush the output buffer and redraw the cursor
+ */
+ void
+out_flush_cursor(
+ int force UNUSED, /* when TRUE, update cursor even when not moved */
+ int clear_selection UNUSED) /* clear selection under cursor */
+{
+ mch_disable_flush();
+ out_flush();
+ mch_enable_flush();
+#ifdef FEAT_GUI
+ if (gui.in_use)
+ {
+ gui_update_cursor(force, clear_selection);
+ gui_may_flush();
+ }
+#endif
+}
+
+
#if defined(FEAT_MBYTE) || defined(PROTO)
/*
* Sometimes a byte out of a multi-byte character is written with out_char().