Allow opening joysticks that are read-only on Linux
Fixes https://github.com/libsdl-org/SDL/issues/4713main
parent
0323d983c6
commit
b8c00bf914
|
@ -963,7 +963,12 @@ PrepareJoystickHwdata(SDL_Joystick *joystick, SDL_joylist_item *item)
|
||||||
&joystick->naxes,
|
&joystick->naxes,
|
||||||
&joystick->nhats);
|
&joystick->nhats);
|
||||||
} else {
|
} else {
|
||||||
const int fd = open(item->path, O_RDWR | O_CLOEXEC, 0);
|
/* Try read-write first, so we can do rumble */
|
||||||
|
int fd = open(item->path, O_RDWR | O_CLOEXEC, 0);
|
||||||
|
if (fd < 0) {
|
||||||
|
/* Try read-only again, at least we'll get events in this case */
|
||||||
|
fd = open(item->path, O_RDONLY | O_CLOEXEC, 0);
|
||||||
|
}
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
return SDL_SetError("Unable to open %s", item->path);
|
return SDL_SetError("Unable to open %s", item->path);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue