Pārlūkot izejas kodu

Default SDL_HINT_ACCELEROMETER_AS_JOYSTICK to 0 on Linux

The Linux joystick driver supports associating sensor devices with the related controller device, so enable that by default.

Fixes https://github.com/libsdl-org/SDL/issues/12043

(cherry picked from commit 3e47181800d7f97c8b1c9784146ddfb71f7637d3)
Sam Lantinga 3 nedēļas atpakaļ
vecāks
revīzija
b2a95b2482
1 mainītis faili ar 6 papildinājumiem un 3 dzēšanām
  1. 6 3
      src/core/linux/SDL_udev.c

+ 6 - 3
src/core/linux/SDL_udev.c

@@ -424,9 +424,12 @@ static int device_class(struct udev_device *dev)
         }
 
         val = _this->syms.udev_device_get_property_value(dev, "ID_INPUT_ACCELEROMETER");
-        if (SDL_GetHintBoolean(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, SDL_TRUE) &&
-            val && SDL_strcmp(val, "1") == 0) {
-            devclass |= SDL_UDEV_DEVICE_JOYSTICK;
+        if (val && SDL_strcmp(val, "1") == 0) {
+            if (SDL_GetHintBoolean(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, SDL_FALSE)) {
+                devclass |= SDL_UDEV_DEVICE_JOYSTICK;
+            } else {
+                devclass |= SDL_UDEV_DEVICE_ACCELEROMETER;
+            }
         }
 
         val = _this->syms.udev_device_get_property_value(dev, "ID_INPUT_MOUSE");