From dc53f8b7f360a489bd10355131339809d66378ef Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 11 Apr 2012 03:40:16 +0300 Subject: Add joystick validation before triggering events from it. --- src/joystick.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/joystick.cpp') diff --git a/src/joystick.cpp b/src/joystick.cpp index 2bd8b582a..3222c9825 100644 --- a/src/joystick.cpp +++ b/src/joystick.cpp @@ -275,7 +275,7 @@ KeysVector *Joystick::getActionVector(const SDL_Event &event) return nullptr; } -int Joystick::getButtonFromEvent(const SDL_Event &event) +int Joystick::getButtonFromEvent(const SDL_Event &event) const { if (event.jbutton.which != mNumber) return -1; @@ -284,6 +284,9 @@ int Joystick::getButtonFromEvent(const SDL_Event &event) bool Joystick::isActionActive(int index) const { + if (!validate()) + return false; + const KeyFunction &key = inputManager.getKey(index); for (size_t i = 0; i < KeyFunctionSize; i ++) { @@ -298,3 +301,11 @@ bool Joystick::isActionActive(int index) const } return false; } + +bool Joystick::validate() const +{ + if (mCalibrating || !mEnabled || !mCalibrated) + return false; + + return (mUseInactive || Client::getInputFocused()); +} -- cgit v1.2.3-60-g2f50