diff --git a/configure.in b/configure.in index ca0024e13..93f007ef6 100644 --- a/configure.in +++ b/configure.in @@ -930,8 +930,8 @@ CheckInputEvents() { dnl Check for Linux 2.4 unified input event interface support AC_ARG_ENABLE(input-events, -[ --enable-input-events use Linux 2.4 unified input interface [default=no]], - , enable_input_events=no) +[ --enable-input-events use Linux 2.4 unified input interface [default=yes]], + , enable_input_events=yes) if test x$enable_input_events = xyes; then AC_MSG_CHECKING(for Linux 2.4 unified input interface) use_input_events=no diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c index 8545c3460..828cc22a3 100644 --- a/src/joystick/linux/SDL_sysjoystick.c +++ b/src/joystick/linux/SDL_sysjoystick.c @@ -143,9 +143,8 @@ int SDL_SYS_JoystickInit(void) "/dev/js%d", #ifdef USE_INPUT_EVENTS "/dev/input/event%d" -#else - "/dev/input/js%d" #endif + "/dev/input/js%d" }; int numjoysticks; int i, j, done; @@ -222,6 +221,15 @@ int SDL_SYS_JoystickInit(void) done = 1; } } + /* This is a special case... + If we're looking at the /dev/input event devices, and we found + at least one, then we don't want to look at the input joystick + devices, since they're built on top of devices that we've already + seen, so we're done. + */ + if ( i > 0 && j > 0 ) { + done = 1; + } } return(numjoysticks); }