Fixed an issue where the keyboard was counted as a joystick.

This commit is contained in:
Leon Styhre 2020-08-03 12:13:28 +02:00
parent 1550c48187
commit d9f00ec582
3 changed files with 15 additions and 4 deletions

View file

@ -179,7 +179,19 @@ void InputManager::deinit()
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
}
int InputManager::getNumJoysticks() { return (int)mJoysticks.size(); }
int InputManager::getNumJoysticks()
{
int numJoysticks = 0;
// This is a workaround to exclude the keyboard (ID -1) from the total joystick count.
// It's incorrectly added when configuring the keyboard in GuiInputConfig, but I've
// been unable to find a proper fix to not having it added to mJoysticks.
for (auto it = mJoysticks.cbegin(); it != mJoysticks.cend(); it++) {
if ((*it).first >= 0)
numJoysticks += 1;
}
return numJoysticks;
}
int InputManager::getAxisCountByDevice(SDL_JoystickID id)
{

View file

@ -350,8 +350,7 @@ bool GuiInputConfig::assign(Input input, int inputId)
// Input is from InputConfig* mTargetConfig.
// If this input is mapped to something other than "nothing" or the current row,
// generate an error.
// (If it's the same as what it was before, allow it.)
// generate an error. (If it's the same as what it was before, allow it.)
if (mTargetConfig->getMappedTo(input).size() > 0 &&
!mTargetConfig->isMappedTo(GUI_INPUT_CONFIG_LIST[inputId].name, input) &&
strcmp(GUI_INPUT_CONFIG_LIST[inputId].name, "HotKeyEnable") != 0) {