Fixed bug where the Steam overlay would generate an event and stop input processing for the frame.
parent
9c8e403f6b
commit
afb9ff9507
|
@ -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)) {
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue