ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.25k stars 175 forks source link

Steam Input bug: modeshifted radial menus don't work reliably. #7056

Open joaormatos opened 4 years ago

joaormatos commented 4 years ago

System information

Problem description

When a mode-shifted radial menu is opened, repeatedly tapping on a specific menu item will only work the first time, requiring the activation of a different menu item or releasing and pressing the mode-shift button again for it to register again. Excepted to this are the first and last menu entries (12 and ~11 o'clock, respectively.) This doesn't happen when the radial menu is not mode-shifted. This affects joysticks and pads equally.

Steps for reproducing this issue:

  1. Load the following controller config in Half-Life 2: 1.1 Steam Controller version: steam://controllerconfig/220/2071618524 1.2 DualShock 4 version: steam://controllerconfig/220/2071623783
  2. Open the console to view keys being pressed
  3. Observe behavior of radial menus bound to the left stick and right pad/stick. Try "tapping" the menu entries repeatedly. It should work as expected.
  4. Now hold Left Bumper/L1 and try again. This mode-shifts into a pair of radial menus identical to the first. Note how repeated taps on entries other than the first and last seem to be ignored entirely. The first and last entries are not fully reliable either, failing to register when tapping too quickly.
  5. Try "rolling" around the menus, which seems to work normally despite the problems in the previous step. This should provide further insight into where things are going wrong.

Further notes

joaormatos commented 4 years ago

Also affects the current beta channel build. (Apr 23 2020, at 00:53:55)

Video demonstration: https://www.youtube.com/watch?v=zZnj0h29FSE

The radial menus that appear in the bottom half are normal and the ones on the top half are mode-shifted. I'm afraid the video doesn't show clearly what's going on because the issue is that input is being ignored, so nothing happens on-screen when it should.