SDL_PumpEvents man page
SDL_PumpEvents — Pumps the event loop, gathering events from the input devices.
Pumps the event loop, gathering events from the input devices.
SDL_PumpEvents gathers all the pending input information from devices and places it on the event queue. Without calls to SDL_PumpEvents no events would ever be placed on the queue. Often calls the need for SDL_PumpEvents is hidden from the user since SDL_PollEvent and SDL_WaitEvent implicitly call SDL_PumpEvents. However, if you are not polling or waiting for events (e.g. your filtering them), then you must call SDL_PumpEvents to force an event queue update.
You can only call this function in the thread that set the video mode.