Skip to content

Commit

Permalink
Check to make sure the Windows joystick device has buttons and axes
Browse files Browse the repository at this point in the history
This reverts commit e5a15f9.

It turns out removing this check allows mice like the ROG PUGIO II to show up as game controllers. We need to find a different way to differentiate between gaming mice and pedals.

Since these mice show up as controllers, and potentially causing games to use them instead of real controllers, we'll go ahead revert this change for now.

Reopens #8227

(cherry picked from commit ad0af48)
(cherry picked from commit 20ecd2a)
  • Loading branch information
slouken committed Nov 2, 2023
1 parent 5f4ddeb commit 7ebfaa0
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/joystick/windows/SDL_dinputjoystick.c
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@ static BOOL CALLBACK EnumJoystickDetectCallback(LPCDIDEVICEINSTANCE pDeviceInsta
char *hidPath = NULL;
char *name = NULL;
LPDIRECTINPUTDEVICE8 device = NULL;
DIDEVCAPS caps;

/* We are only supporting HID devices. */
CHECK(pDeviceInstance->dwDevType & DIDEVTYPE_HID);
Expand All @@ -462,6 +463,13 @@ static BOOL CALLBACK EnumJoystickDetectCallback(LPCDIDEVICEINSTANCE pDeviceInsta
CHECK(QueryDevicePath(device, &hidPath));
CHECK(QueryDeviceInfo(device, &vendor, &product));

/* Check to make sure the device has buttons and axes.
* This fixes incorrectly detecting the ROG CHAKRAM X mouse as a game controller on Windows 10
*/
caps.dwSize = sizeof(caps);
CHECK(SUCCEEDED(IDirectInputDevice8_GetCapabilities(device, &caps)));
CHECK(caps.dwAxes > 0 && caps.dwButtons > 0);

CHECK(!SDL_IsXInputDevice(vendor, product, hidPath));

pNewJoystick = *(JoyStick_DeviceData **)pContext;
Expand Down

0 comments on commit 7ebfaa0

Please sign in to comment.