Commit Graph
22 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Sonnet 5 7ff9fbdb47 InputMapping: fix OOB access, reject DEVICE_ID_ANY mappings
FromConfigString() indexed parts[0]/parts[1] from SplitString() with
no check that at least 2 parts were produced - a malformed/truncated
line in a hand-edited controls.ini (no '-') was an OOB vector access.

Separately, DEVICE_ID_ANY (-1) didn't round-trip correctly:
ToConfigString() formats it as e.g. "-1-5", but splitting that on '-'
produces "", "1", "5" instead of "-1", "5" - deviceId decoded to 0 and
keyCode to 1 instead of 5. Rather than special-casing the negative
sign to make it round-trip, just reject DEVICE_ID_ANY mappings
outright - it's not something we want to support, and the whole ANY
concept is likely going away. Preserves the existing (tested) behavior
of tolerating a MultiInputMapping string and parsing just its first
mapping, via atoi()'s stop-at-first-non-digit behavior.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4QAoxV2KY7ek4PcZw3WvY
2026-08-09 21:41:54 +02:00
Henrik Rydgård 7fa52a0916 Fix problem with confirm button set to O.
Fixes #21042
2026-02-13 22:08:28 +01:00
Henrik Rydgård 263d0b3983 SDL: Fix bug where the mouse got stuck in relative mode when mapping mouse inputs 2025-07-10 20:29:24 +02:00
Herman Semenov 4ef014cb73 [Common] Fixes from Unknown W. Brackets: <checkins@unknownbrackets.org> 2024-09-18 11:11:25 +02:00
Herman Semenov 45429bcd85 [Common/Data/File/Input/Net/Serialize/System/UI] Using for based loop C++17 and replaced on structured binding map C++17 2024-09-17 17:42:08 +02:00
Lubos f56f696386 OpenXR - Cleanup 2024-08-08 12:35:45 +02:00
Henrik Rydgård 126d88ecfc Back out clearly inconsequential/useless .reserve() calls 2023-12-29 08:27:56 +01:00
Herman Semenov b8748ae9e5 [Common/File/GPU/Render/Input] Using reserve if possible 2023-12-15 14:00:51 +03:00
Herman Semenov 5a0d54be83 [Common/Data/GPU/Input/System/UI] Added const reference for function params 2023-12-14 14:21:11 +03:00
Henrik Rydgård 19eeaef2ea More uses of string_view 2023-11-13 23:36:34 +01:00
Henrik Rydgård 2910303d20 Clean up the checks for triangle-button-for-info on the main screen 2023-11-13 12:49:08 +01:00
Henrik Rydgård b9327073bb Add checkbox controlling if new mappings can be combo mappings.
These can be problematic with certain controllers that send double
signals. Like PS4 controllers on Android, the analog triggers send dual
axis events, and additionally digital events.
2023-07-07 10:42:08 +02:00
Henrik Rydgård 2675d6ea43 Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +02:00
Henrik Rydgård 49a2c93b66 Make multi-mapping save-able, add test to verify backwards and forwards compat 2023-04-01 13:51:00 +02:00
Henrik Rydgård 2428051f17 buildfix 2023-03-31 20:35:22 +02:00
Henrik Rydgård 48993f4f4b Control: Add debug display, do assorted fixes. 2023-03-31 20:12:48 +02:00
Henrik Rydgård d00809ae53 Rename KeyDef to InputMapping and give it responsibility for Axis encoding 2023-03-29 11:59:31 +02:00
Lubos c368a213ac OpenXR - Support head rotations in 2D 2023-01-28 11:50:46 +01:00
Lubos 67821ca942 OpenXR - Controller mapping better 2022-07-22 18:47:37 +02:00
Henrik Rydgård b6228a1036 Add additional autoconf layout for xbox pads on Android. Revert the normal pad layout. 2021-08-28 15:38:03 +02:00
Unknown W. Brackets eca3a405b6 UI: Flip Y analog direction based on config. 2021-04-04 08:39:49 -07:00
Henrik Rydgård 342ed97291 Move input utilities from native to Common/Input. 2020-10-01 09:42:32 +02:00