aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadia Holmquist Pedersen <nadia@nhp.sh>2022-07-07 23:16:28 +0200
committerNadia Holmquist Pedersen <nadia@nhp.sh>2022-07-07 23:18:56 +0200
commitf5c1094d03c317a93d4f088c34e7a89c16a2b2bf (patch)
treeefbef1b809a38a1864cf768562931b3e0a9e43dd
parent35cbda900190ef05fd3df2fa2950657d25b654b6 (diff)
Fix triggers being recognized as negative analog stick values when assigning an input if the axis is moved too slowly.
-rw-r--r--src/frontend/qt_sdl/InputConfig/MapButton.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/frontend/qt_sdl/InputConfig/MapButton.h b/src/frontend/qt_sdl/InputConfig/MapButton.h
index ca210f9..1541521 100644
--- a/src/frontend/qt_sdl/InputConfig/MapButton.h
+++ b/src/frontend/qt_sdl/InputConfig/MapButton.h
@@ -245,19 +245,21 @@ protected:
Sint16 axisval = SDL_JoystickGetAxis(joy, i);
int diff = abs(axisval - axesRest[i]);
- if (axesRest[i] < -16384 && axisval >= 0)
+ if (diff >= 16384)
{
- *mapping = (oldmap & 0xFFFF) | 0x10000 | (2 << 20) | (i << 24);
- click();
- return;
- }
- else if (diff > 16384)
- {
- int axistype;
- if (axisval > 0) axistype = 0;
- else axistype = 1;
+ if (axesRest[i] < -16384) // Trigger
+ {
+ *mapping = (oldmap & 0xFFFF) | 0x10000 | (2 << 20) | (i << 24);
+ }
+ else // Analog stick
+ {
+ int axistype;
+ if (axisval > 0) axistype = 0;
+ else axistype = 1;
+
+ *mapping = (oldmap & 0xFFFF) | 0x10000 | (axistype << 20) | (i << 24);
+ }
- *mapping = (oldmap & 0xFFFF) | 0x10000 | (axistype << 20) | (i << 24);
click();
return;
}