diff --git a/Source/controls/controller.cpp b/Source/controls/controller.cpp index 0d84d3243..786d9380e 100644 --- a/Source/controls/controller.cpp +++ b/Source/controls/controller.cpp @@ -100,7 +100,9 @@ ControllerButtonEvent ToControllerButtonEvent(const SDL_Event &event) const Joystick *joystick = Joystick::Get(event); if (joystick != nullptr) { result.button = devilution::Joystick::ToControllerButton(event); - result.state = event.jbutton.state; + result.state = ControllerButtonState_PRESSED; + if (IsAnyOf(event.type, SDL_JOYBUTTONUP, SDL_JOYBUTTONDOWN)) + result.state = event.jbutton.state; } return result;