From dcfd1e4667d0031ddaeb06135d16dde8e2e15b9f Mon Sep 17 00:00:00 2001 From: "duna.oh" Date: Tue, 12 Jul 2022 15:17:52 +0900 Subject: [PATCH] evdev: A joystick could be ignored before opening input device add checking if the builtin property 'ID_INPUT_JOYSTICK' is set. Because 'LIBINPUT_IGNORE_DEVICE' is usually set by udev rule, it may not be determined until the udev rule is parsed. A joystick is not supported in libinput for now. Change-Id: I19cc67538dd1ccc6f1c6f2a2dccbb96d344d40ac --- src/evdev.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/evdev.c b/src/evdev.c index e9dfed86..4b74ba13 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -2428,6 +2428,7 @@ libevdev_log_func(const struct libevdev *evdev, #pragma GCC diagnostic pop } +#if 0 static bool udev_device_should_be_ignored(struct udev_device *udev_device) { @@ -2438,6 +2439,30 @@ udev_device_should_be_ignored(struct udev_device *udev_device) return value && !streq(value, "0"); } +#else // for TIZEN +static bool +udev_device_should_be_ignored(struct udev_device *udev_device) +{ + const char *value; + char *env; + + value = udev_device_get_property_value(udev_device, + "LIBINPUT_IGNORE_DEVICE"); + + if (value && !streq(value, "0")) return true; + + // for TIZEN, add checking if joystick should be ignored or not. + env = getenv("LIBINPUT_IGNORE_JOYSTICK"); + if (env && atoi(env) == 1) { + value = udev_device_get_property_value(udev_device, + "ID_INPUT_JOYSTICK"); + } + + if (value && !streq(value, "0")) return true; + + return false; +} +#endif struct evdev_device * evdev_device_create(struct libinput_seat *seat, @@ -2466,7 +2491,7 @@ evdev_device_create(struct libinput_seat *seat, } if (udev_device_should_be_ignored(udev_device)) { - log_debug(libinput, "%s: device is ignored\n", sysname); + log_info(libinput, "%s: device is ignored\n", sysname); goto err; } -- 2.34.1