Merge pull request #93352 from Calinou/linuxbsd-controller-no-trackpad-graphics-tablet
Fix trackpads and graphics tablets being recognized as controllers on Linux/*BSD
This commit is contained in:
commit
49a6171319
|
@ -374,6 +374,12 @@ void JoypadLinux::open_joypad(const char *p_path) {
|
|||
name = namebuf;
|
||||
}
|
||||
|
||||
for (const String &word : name.to_lower().split(" ")) {
|
||||
if (banned_words.has(word)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (ioctl(fd, EVIOCGID, &inpid) < 0) {
|
||||
close(fd);
|
||||
return;
|
||||
|
|
|
@ -94,6 +94,21 @@ private:
|
|||
|
||||
Vector<String> attached_devices;
|
||||
|
||||
// List of lowercase words that will prevent the controller from being recognized if its name matches.
|
||||
// This is done to prevent trackpads, graphics tablets and motherboard LED controllers from being
|
||||
// recognized as controllers (and taking up controller ID slots as a result).
|
||||
// Only whole words are matched within the controller name string. The match is case-insensitive.
|
||||
const Vector<String> banned_words = {
|
||||
"touchpad", // Matches e.g. "SynPS/2 Synaptics TouchPad", "Sony Interactive Entertainment DualSense Wireless Controller Touchpad"
|
||||
"trackpad",
|
||||
"clickpad",
|
||||
"keyboard", // Matches e.g. "PG-90215 Keyboard", "Usb Keyboard Usb Keyboard Consumer Control"
|
||||
"mouse", // Matches e.g. "Mouse passthrough"
|
||||
"pen", // Matches e.g. "Wacom One by Wacom S Pen"
|
||||
"finger", // Matches e.g. "Wacom HID 495F Finger"
|
||||
"led", // Matches e.g. "ASRock LED Controller"
|
||||
};
|
||||
|
||||
static void monitor_joypads_thread_func(void *p_user);
|
||||
void monitor_joypads_thread_run();
|
||||
|
||||
|
|
Loading…
Reference in New Issue