diff options
| -rw-r--r-- | core/input/input.cpp | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/core/input/input.cpp b/core/input/input.cpp index e08647f5ea..d8ededf373 100644 --- a/core/input/input.cpp +++ b/core/input/input.cpp @@ -974,11 +974,9 @@ void Input::joy_axis(int p_device, JoyAxis p_axis, float p_value) {  	if (map.type == TYPE_BUTTON) {  		bool pressed = map.value > 0.5; -		if (pressed == joy_buttons_pressed.has(_combine_device((JoyButton)map.index, p_device))) { -			// Button already pressed or released; so ignore. -			return; +		if (pressed != joy_buttons_pressed.has(_combine_device((JoyButton)map.index, p_device))) { +			_button_event(p_device, (JoyButton)map.index, pressed);  		} -		_button_event(p_device, (JoyButton)map.index, pressed);  		// Ensure opposite D-Pad button is also released.  		switch ((JoyButton)map.index) { @@ -1129,7 +1127,7 @@ Input::JoyEvent Input::_get_mapped_axis_event(const JoyDeviceMapping &mapping, J  				value = -value;  			}  			if (binding.input.axis.range == FULL_AXIS || -					(binding.input.axis.range == POSITIVE_HALF_AXIS && value > 0) || +					(binding.input.axis.range == POSITIVE_HALF_AXIS && value >= 0) ||  					(binding.input.axis.range == NEGATIVE_HALF_AXIS && value < 0)) {  				event.type = binding.outputType;  				float shifted_positive_value = 0; |