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/ui.c b/src/ui.c
index e410f68..c77a8e0 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -245,7 +245,7 @@
if (interrupted != NULL && *interrupted)
/* Nothing available, but need to return so that side effects get
* handled, such as handling a message on a channel. */
- return FALSE;
+ return FAIL;
if (wtime > 0)
remaining -= due_time;
}
@@ -578,11 +578,7 @@
update_curbuf(INVERTED_ALL);
setcursor();
cursor_on();
- out_flush();
-# ifdef FEAT_GUI
- if (gui.in_use)
- gui_update_cursor(TRUE, FALSE);
-# endif
+ out_flush_cursor(TRUE, FALSE);
}
}
#endif
@@ -3331,13 +3327,10 @@
setcursor();
}
cursor_on(); /* redrawing may have switched it off */
- out_flush();
+ out_flush_cursor(FALSE, TRUE);
# ifdef FEAT_GUI
if (gui.in_use)
- {
- gui_update_cursor(FALSE, TRUE);
gui_update_scrollbars(FALSE);
- }
# endif
}
#ifdef FEAT_TITLE