Mac: Run the CFRunLoop in joystick mode during SDL_SYS_JoystickNeedsPolling(). This fixes hotplugging failing to detect devices.
diff --git a/src/joystick/darwin/SDL_sysjoystick.c b/src/joystick/darwin/SDL_sysjoystick.c
index 9ad8c44..bdb6d29 100644
--- a/src/joystick/darwin/SDL_sysjoystick.c
+++ b/src/joystick/darwin/SDL_sysjoystick.c
@@ -604,7 +604,9 @@ SDL_SYS_JoystickDetect()
SDL_bool
SDL_SYS_JoystickNeedsPolling()
{
- // BUGBUG - only works if someone else is pumping the CFRunLoop...
+ while (CFRunLoopRunInMode(SDL_JOYSTICK_RUNLOOP_MODE,0,TRUE) == kCFRunLoopRunHandledSource) {
+ /* no-op. Pending callbacks will fire in CFRunLoopRunInMode(). */
+ }
return s_bDeviceAdded || s_bDeviceRemoved;
}