Skip to content

Commit

Permalink
Fixed bug where the Steam overlay would generate an event and stop in…
Browse files Browse the repository at this point in the history
…put processing for the frame.
  • Loading branch information
slouken committed Aug 30, 2019
1 parent 9c8e403 commit afb9ff9
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/video/windows/SDL_windowsevents.c
Expand Up @@ -1119,6 +1119,7 @@ WIN_PumpEvents(_THIS)
const Uint8 *keystate;
MSG msg;
DWORD start_ticks = GetTickCount();
int new_messages = 0;

if (g_WindowsEnableMessageLoop) {
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
Expand All @@ -1132,7 +1133,15 @@ WIN_PumpEvents(_THIS)

/* Make sure we don't busy loop here forever if there are lots of events coming in */
if (SDL_TICKS_PASSED(msg.time, start_ticks)) {
break;
/* We might get a few new messages generated by the Steam overlay or other application hooks
In this case those messages will be processed before any pending input, so we want to continue after those messages.
(thanks to Peter Deayton for his investigation here)
*/
const int MAX_NEW_MESSAGES = 3;
++new_messages;
if (new_messages > MAX_NEW_MESSAGES) {
break;
}
}
}
}
Expand Down

0 comments on commit afb9ff9

Please sign in to comment.