diff --git a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm index 3a0fe1eeca..036c27d58c 100644 --- a/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm +++ b/Source/Core/InputCommon/ControllerInterface/OSX/OSX.mm @@ -167,13 +167,12 @@ static void DeviceMatchingCallback(void* inContext, IOReturn inResult, void* inS std::string name = GetDeviceRefName(inIOHIDDeviceRef); // Add a device if it's of a type we want - if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard)) + if (IOHIDDeviceConformsTo(inIOHIDDeviceRef, kHIDPage_GenericDesktop, kHIDUsage_GD_Joystick)) { - + g_controller_interface.AddDevice(std::make_shared(inIOHIDDeviceRef, name)); } else { - g_controller_interface.AddDevice(std::make_shared(inIOHIDDeviceRef, name)); } NOTICE_LOG(SERIALINTERFACE, "Added device: %s", name.c_str()); diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index 5cf24a9b93..8ae380ad33 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -136,7 +136,7 @@ bool InputConfig::IsControllerControlledByGamepadDevice(int index) const const auto& controller = m_controllers.at(index).get()->default_device; // Filter out anything which obviously not a gamepad - return !((controller.source == "Quartz") // OSX Quartz Keyboard/Mouse + return !((controller.source == "Quartz") // OSX Quartz Keyboard/Mouse || (controller.source == "XInput2") // Linux and BSD Keyboard/Mouse || (controller.source == "Android" && controller.name == "Touchscreen") // Android Touchscreen