diff --git a/src/joystick/hidapi/SDL_hidapi_ps4.c b/src/joystick/hidapi/SDL_hidapi_ps4.c index c9c24a381..7aefd7948 100644 --- a/src/joystick/hidapi/SDL_hidapi_ps4.c +++ b/src/joystick/hidapi/SDL_hidapi_ps4.c @@ -961,7 +961,9 @@ HIDAPI_DriverPS4_UpdateDevice(SDL_HIDAPI_Device *device) if (device->num_joysticks == 0 && device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { - HIDAPI_JoystickConnected(device, NULL); + if (SDL_hid_read_timeout(device->dev, data, sizeof(data), 0) > 0) { + HIDAPI_JoystickConnected(device, NULL); + } } if (device->num_joysticks > 0) { diff --git a/src/joystick/hidapi/SDL_hidapi_ps5.c b/src/joystick/hidapi/SDL_hidapi_ps5.c index 423d4e9ed..1bd1a2669 100644 --- a/src/joystick/hidapi/SDL_hidapi_ps5.c +++ b/src/joystick/hidapi/SDL_hidapi_ps5.c @@ -1269,7 +1269,9 @@ HIDAPI_DriverPS5_UpdateDevice(SDL_HIDAPI_Device *device) if (device->num_joysticks == 0 && device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { - HIDAPI_JoystickConnected(device, NULL); + if (SDL_hid_read_timeout(device->dev, data, sizeof(data), 0) > 0) { + HIDAPI_JoystickConnected(device, NULL); + } } if (device->num_joysticks > 0) { diff --git a/src/joystick/hidapi/SDL_hidapi_switch.c b/src/joystick/hidapi/SDL_hidapi_switch.c index 5c542b3ff..62e826c41 100644 --- a/src/joystick/hidapi/SDL_hidapi_switch.c +++ b/src/joystick/hidapi/SDL_hidapi_switch.c @@ -2089,7 +2089,9 @@ HIDAPI_DriverSwitch_UpdateDevice(SDL_HIDAPI_Device *device) if (device->num_joysticks == 0 && device->is_bluetooth && !HIDAPI_HasConnectedUSBDevice(device->serial)) { - HIDAPI_JoystickConnected(device, NULL); + if (ReadInput(ctx) > 0) { + HIDAPI_JoystickConnected(device, NULL); + } } if (device->num_joysticks > 0) {