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
1 changed files with 11 additions and 2 deletions

View File

@ -866,8 +866,7 @@ SDL_GameControllerInit(void)
const char *pMappingString = NULL;
s_pSupportedControllers = NULL;
pMappingString = s_ControllerMappings[i];
while ( pMappingString )
{
while ( pMappingString ) {
SDL_GameControllerAddMapping( pMappingString );
i++;
@ -880,6 +879,16 @@ SDL_GameControllerInit(void)
/* watch for joy events and fire controller ones if needed */
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);
}