changeset 12090:c4caf49c8bf4 v8.0.0925

patch 8.0.0925: MS-Windows GUI: channel I/O not handled right away commit https://github.com/vim/vim/commit/62426e168ef29fb941d1bd91a112fa09445322a5 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Aug 13 15:37:58 2017 +0200 patch 8.0.0925: MS-Windows GUI: channel I/O not handled right away Problem: MS-Windows GUI: channel I/O not handled right away. Solution: Don't call process_message() unless a message is available. (Yasuhiro Matsumoto, closes #1969)
author Christian Brabandt <cb@256bit.org>
date Sun, 13 Aug 2017 15:45:04 +0200
parents d61607f10e9f
children b3dff741a6a9
files src/gui_w32.c src/version.c
diffstat 2 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2073,20 +2073,23 @@ gui_mch_wait_for_chars(int wtime)
 	did_add_timer = FALSE;
 #endif
 #ifdef MESSAGE_QUEUE
-	/* Check channel while waiting message. */
+	/* Check channel I/O while waiting for a message. */
 	for (;;)
 	{
 	    MSG msg;
 
 	    parse_queued_messages();
 
-	    if (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
-		|| MsgWaitForMultipleObjects(0, NULL, FALSE, 100, QS_ALLINPUT)
-								!= WAIT_TIMEOUT)
+	    if (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
+	    {
+		process_message();
 		break;
-	}
-#endif
-
+	    }
+	    else if (MsgWaitForMultipleObjects(0, NULL, FALSE, 100, QS_ALLINPUT)
+							       != WAIT_TIMEOUT)
+		break;
+	}
+#else
 	/*
 	 * Don't use gui_mch_update() because then we will spin-lock until a
 	 * char arrives, instead we use GetMessage() to hang until an
@@ -2094,6 +2097,7 @@ gui_mch_wait_for_chars(int wtime)
 	 * returning as soon as it contains a single char -- webb
 	 */
 	process_message();
+#endif
 
 	if (input_available())
 	{
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    925,
+/**/
     924,
 /**/
     923,