mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2025-01-12 05:41:10 +01:00
Fixed bug where the Steam overlay would generate an event and stop input processing for the frame.
This commit is contained in:
parent
9c8e403f6b
commit
afb9ff9507
@ -1119,6 +1119,7 @@ WIN_PumpEvents(_THIS)
|
|||||||
const Uint8 *keystate;
|
const Uint8 *keystate;
|
||||||
MSG msg;
|
MSG msg;
|
||||||
DWORD start_ticks = GetTickCount();
|
DWORD start_ticks = GetTickCount();
|
||||||
|
int new_messages = 0;
|
||||||
|
|
||||||
if (g_WindowsEnableMessageLoop) {
|
if (g_WindowsEnableMessageLoop) {
|
||||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
|
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 */
|
/* 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)) {
|
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
Block a user