Description

For actions that are triggered on the Input mapping context, simply adding or removing an InputMappingContext with no related key override with the bIgnoreAllPressedKeysUntilRelease option will cause the event trigger to stop.
This happens because the trigger array is deep copied and therefore fails to compare with the old mapping.

Steps to Reproduce

Sorry this issue was already fixed in 5.3.

~# Create a project with ThirdPersonTemplate

  1. Create a InputAction and assign a down trigger ...(A)
  2. Create another InputAction without any triggers ...(B)
  3. Create one more InputAction without any triggers ...(C)
  4. Open /ThirdPerson/Input./IMC_Default
  5. Add (A) , (B) and (C) to Mapping array
  6. Assign Down trigger to (B) and (C)
  7. Create a InputMappingContext ...(D)
  8. Open /ThirdPerson/Blueprints/BP_ThirdPersonCharacter and put following nodes to Add/Remove (D)
    [Image Removed]
  9. Save changes and start PIE
  10. Enter "showdebug EnhancedInput" console command
  11. Press and hold the key for (A) and then Press the key for (C)
  12. See event for (A) keeps triggering
  13. Release all keys
  14. Press and hold the key for (B) and then Press the key for (C)
  15. See event for B stops triggering

Or

  1. Open repro project in the UDN thread linked in additional info in this JIRA
  2. Start PIE
  3. Enter "showdebug EnhancedInput" console command
  4. Press and hold "3" key and then press "1" key
  5. Release all keys
  6. Press and hold "2" key and then press "1" key

 ~

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-192648 in the post.

1
Login to Vote

Fixed
ComponentUE - Gameplay - Input
Affects Versions5.2
Target Fix5.3
CreatedAug 10, 2023
ResolvedAug 11, 2023
UpdatedAug 28, 2023