godot/core
Eoin O'Neill 58ff96b8b7 Prevent double input events on gamepad when running through steam input
During GDC and general testing on Steam Deck units, we found that single
gamepads would often register inputs twice under certain circumstances.
This was caused by SteamInput creating a new virtual device, which Godot
registers as a second gamepad. This resulted in two gamepad devices
reporting the same button presses, often leading to buggy input response
on games with no multi-device logic and other-wise could cause intended
Steam rebindings to not work as intended (for example, swapping o and x
on a playstation pad if that feature isn't supported by the game.)

SDL gets around this by taking in a list of devices that are to be
ignored. When valve sees a controller that wants to be rebound via
SteamInput, they push a new VID/PID entry onto the environment
variable `SDL_GAMECONTROLLER_IGNORE_DEVICES` for the original gamepad
so that all game inputs can be read from the virtual gamepad instead.

This leverages the same logic as we are already using SDL gamepad
related HID mappings.

(cherry picked from commit 8de98dbf21)
2023-09-21 14:57:13 +02:00
..
config Fix root_node_layout_direction setting not enum 2023-08-31 20:19:30 +02:00
crypto mbedTLS: disable weak crypto and TLS versions. 2023-05-10 11:13:19 +02:00
debugger Fix infinite loop on EOF in the command line debugger 2023-06-11 04:20:22 -07:00
error Fix incorrect index error macros 2023-01-22 12:23:56 +01:00
extension GDExtension @since attribute 2023-06-21 12:47:48 +02:00
input Prevent double input events on gamepad when running through steam input 2023-09-21 14:57:13 +02:00
io Fix GCC -Wmaybe-uninitialized warnings 2023-09-20 22:44:04 +02:00
math Merge pull request #76787 from RedworkDE/avoid-localvector-copy 2023-06-20 00:01:55 +02:00
object Add check to ensure registered classes are declared 2023-09-21 13:50:25 +02:00
os Fixed the fallback logic of OS::shell_show_in_file_manager 2023-07-10 17:11:21 +02:00
string Fix erroneous pad_zeros warning 2023-07-10 17:46:09 +02:00
templates Handle RID validator overflow 2023-06-20 13:20:17 +02:00
variant Core: Fix recursion level check for VariantWriter::write() with objects 2023-09-20 22:44:04 +02:00
core_bind.cpp Merge pull request #78000 from RandomShaper/let_users_mess_up 2023-06-10 12:12:13 +02:00
core_bind.h Let user scripts disable thread safety checks 2023-06-09 18:24:01 +02:00
core_builders.py CI: Update static checks to black 23.3.0 2023-06-19 23:33:02 +02:00
core_constants.cpp Merge pull request #76165 from and-rad/safe-credentials 2023-05-10 12:47:07 +02:00
core_constants.h Make global scope enums accessible as types in GDScript 2023-02-19 13:00:07 -03:00
core_globals.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
core_globals.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
core_string_names.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
core_string_names.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
doc_data.cpp Display BitField[Enum] in docs to distinguish from Enum 2023-06-15 17:23:02 +03:00
doc_data.h Display BitField[Enum] in docs to distinguish from Enum 2023-06-15 17:23:02 +03:00
register_core_types.cpp Properly free core types in reverse order 2023-05-30 17:47:12 +02:00
register_core_types.h One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
SCsub FreeType: Update to version 2.13.1 2023-08-31 19:26:48 +02:00
typedefs.h Fix several clang-tidy bool literal conversion warnings 2023-03-04 16:38:35 +02:00
version.h Fix Windows StringFileInfo structure 2023-04-12 22:08:49 +02:00