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/macros.h b/src/macros.h
index 1b54b91..6e4b813 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -365,6 +365,17 @@
* HIKEY2DI() converts a hashitem key pointer to a dictitem pointer.
* HI2DI() converts a hashitem pointer to a dictitem pointer.
*/
-# define DI2HIKEY(di) ((di)->di_key)
-# define HIKEY2DI(p) ((dictitem_T *)(p - offsetof(dictitem_T, di_key)))
-# define HI2DI(hi) HIKEY2DI((hi)->hi_key)
+#define DI2HIKEY(di) ((di)->di_key)
+#define HIKEY2DI(p) ((dictitem_T *)(p - offsetof(dictitem_T, di_key)))
+#define HI2DI(hi) HIKEY2DI((hi)->hi_key)
+
+/*
+ * Flush control functions.
+ */
+#ifdef FEAT_GUI
+# define mch_enable_flush() gui_enable_flush()
+# define mch_disable_flush() gui_disable_flush()
+#else
+# define mch_enable_flush()
+# define mch_disable_flush()
+#endif