mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-09 23:59:27 +01:00
InputCommon: Don't treat two analog inputs as a spurious trigger combo
I've received a report from an Android user with a gamepad (a "BSP-D3") where one physical trigger is controlling two analog axes at the same time. This was causing RemoveSpuriousTriggerCombinations to delete both axes, which is clearly not a desireable outcome. With this change, now the axis with the greatest smoothness is kept, or both in case they have the same smoothness.
This commit is contained in:
parent
5d40871dd4
commit
71ac6ec239
@ -138,8 +138,8 @@ void RemoveSpuriousTriggerCombinations(
|
||||
{
|
||||
const auto is_spurious = [&](auto& detection) {
|
||||
return std::any_of(detections->begin(), detections->end(), [&](auto& d) {
|
||||
// This is a suprious digital detection if a "smooth" (analog) detection is temporally near.
|
||||
return &d != &detection && d.smoothness > 1 &&
|
||||
// This is a spurious digital detection if a "smooth" (analog) detection is temporally near.
|
||||
return &d != &detection && d.smoothness > 1 && d.smoothness > detection.smoothness &&
|
||||
abs(d.press_time - detection.press_time) < SPURIOUS_TRIGGER_COMBO_THRESHOLD;
|
||||
});
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user