Fixed getting different results for SDL_PollEvent(NULL) and SDL_PollEvent(&event)
diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c
index ff079c5..a69e5f5 100644
--- a/src/events/SDL_events.c
+++ b/src/events/SDL_events.c
@@ -1004,9 +1004,22 @@ SDL_WaitEventTimeout(SDL_Event * event, int timeout)
}
break;
default:
- if (event && event->type == SDL_POLLSENTINEL) {
- /* Reached the end of a poll cycle, and not willing to wait */
- return 0;
+ if (include_sentinel) {
+ if (event) {
+ if (event->type == SDL_POLLSENTINEL) {
+ /* Reached the end of a poll cycle, and not willing to wait */
+ return 0;
+ }
+ } else {
+ /* Need to peek the next event to check for sentinel */
+ SDL_Event dummy;
+
+ if (SDL_PeepEventsInternal(&dummy, 1, SDL_PEEKEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT, SDL_TRUE) &&
+ dummy.type == SDL_POLLSENTINEL) {
+ /* Reached the end of a poll cycle, and not willing to wait */
+ return 0;
+ }
+ }
}
/* Has existing events */
return 1;