From d1d118de3ef788b53e377151ea817d282c23bdc2 Mon Sep 17 00:00:00 2001 From: Doug Binks Date: Fri, 21 Nov 2025 18:20:01 +0000 Subject: [PATCH] wait-events glfwWaitEventsTimeout further bugfixes --- src/win32_window.c | 9 +++++++-- src/window.c | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/win32_window.c b/src/win32_window.c index efaab42db..c120b3a17 100644 --- a/src/win32_window.c +++ b/src/win32_window.c @@ -2182,12 +2182,17 @@ void _glfwWaitEventsWin32(void) void _glfwWaitEventsTimeoutWin32(double timeout) { DWORD ret; + double timeStart, timeEnd, timeWait; + timeStart = glfwGetTime(); + timeWait = timeout; do { - ret = MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeout * 1e3), QS_ALLINPUT); + ret = MsgWaitForMultipleObjects(0, NULL, FALSE, (DWORD) (timeWait * 1e3), QS_ALLINPUT); _glfwPollEventsWin32(); - } while (_glfw.newEventsRcvd == GLFW_FALSE && ret != WAIT_TIMEOUT); + timeEnd = glfwGetTime(); + timeWait = timeout - (timeEnd - timeStart); + } while (_glfw.newEventsRcvd == GLFW_FALSE && timeWait > 0.0 ); } void _glfwPostEmptyEventWin32(void) diff --git a/src/window.c b/src/window.c index fa827fc41..840fb206d 100644 --- a/src/window.c +++ b/src/window.c @@ -1210,7 +1210,6 @@ GLFWAPI void glfwWaitEventsTimeout(double timeout) } _glfw.newEventsRcvd = GLFW_FALSE; - _glfw.platform.waitEvents(); _glfw.platform.waitEventsTimeout(timeout); }