Generate SDL_CONTROLLERDEVICEADDED events for controllers connected at startup

This commit is contained in:
Sam Lantinga 2013-12-23 15:10:03 -08:00
parent 746928350f
commit 03aece5452

View file

@ -866,8 +866,7 @@ SDL_GameControllerInit(void)
const char *pMappingString = NULL; const char *pMappingString = NULL;
s_pSupportedControllers = NULL; s_pSupportedControllers = NULL;
pMappingString = s_ControllerMappings[i]; pMappingString = s_ControllerMappings[i];
while ( pMappingString ) while ( pMappingString ) {
{
SDL_GameControllerAddMapping( pMappingString ); SDL_GameControllerAddMapping( pMappingString );
i++; i++;
@ -880,6 +879,16 @@ SDL_GameControllerInit(void)
/* watch for joy events and fire controller ones if needed */ /* watch for joy events and fire controller ones if needed */
SDL_AddEventWatch( SDL_GameControllerEventWatcher, NULL ); SDL_AddEventWatch( SDL_GameControllerEventWatcher, NULL );
/* Send added events for controllers currently attached */
for (i = 0; i < SDL_NumJoysticks(); ++i) {
if (SDL_IsGameController(i)) {
SDL_Event deviceevent;
deviceevent.type = SDL_CONTROLLERDEVICEADDED;
deviceevent.cdevice.which = i;
SDL_PushEvent(&deviceevent);
}
}
return (0); return (0);
} }