You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Read `docs/dev/PROJECT_INSTRUCTIONS.md` before implementation.
8
+
- Active `docs/pr/BUILD_PR.md` is an unrelated Level 18 rebase note, so this report follows the explicit PR105 user request as the current BUILD scope.
9
+
- One PR purpose: fix Input Mapping V2 gesture selection, selected-input highlighting, and remove the visible Cross-device gesture group while preserving cross-device combo capture internally.
10
+
11
+
## Changes
12
+
13
+
- Added selected gesture state to Input Mapping V2.
14
+
- Gesture buttons now stay visibly highlighted with `is-selected` and `aria-pressed="true"` after selection and after capture completion.
15
+
- Selected descriptor gestures are applied to the next matching live capture:
16
+
- Keyboard Release/Hold/Press update captured keyboard mapping text and binding.
17
+
- Mouse Click/Double Click update captured mouse mapping text and binding.
18
+
- Game Controller Button/Trigger/Stick/DPad update captured gamepad mapping text and binding when selected.
19
+
- Keyboard Release now captures as visible tile text such as `Keyboard KeyP Release` instead of falling back to `Keyboard KeyP Press`.
20
+
- Non-default gesture bindings include the gesture id, for example `KeyP:KeyboardRelease`, so Press and Release for the same physical key remain distinct without schema changes.
21
+
- Preserved existing immediate behavior for pointer drag and wheel gesture buttons.
22
+
- Preserved combo capture behavior, including keyboard, mouse, wheel, game controller, and cross-device combinations.
23
+
- Removed `Cross-device` as a visible gesture group and removed the `CrossDeviceCombo` visible descriptor.
24
+
- Kept cross-device combo support available through the existing Combo gesture flow, including Game Controller Combo capturing a controller button plus keyboard Alt.
- selected tile highlights corresponding game controller input,
44
+
- Cross-device group and `CrossDeviceCombo` button are not visible,
45
+
- cross-device combo representation still works through Game Controller Combo without a Cross-device UI group.
46
+
47
+
Expected pass behavior: gesture selection is visible and affects the next matching capture; used inputs are highlighted for the selected tile; Cross-device is absent from visible gestures; cross-device combo still maps internally.
48
+
49
+
Expected fail behavior: selected gestures lose highlighting, Keyboard Release maps as Press, used controls do not highlight for the selected tile, Cross-device appears as a visible group, or cross-device combo cannot be represented without that group.
gameControllerGesture('GameControllerTrigger','Trigger','Game controller trigger. Use for analog trigger actions such as accelerate, brake, or charge.','gameController'),
83
83
gameControllerGesture('GameControllerStick','Stick','Game controller stick. Use for analog movement, aiming, or steering.','gameController'),
84
84
gameControllerGesture('GameControllerDPad','DPad','Game controller DPad. Use for directional menu or movement actions.','gameController'),
85
-
comboGesture('GameControllerCombo','Game Controller',['gameController'],'Game Controller Combo. Use for controller combinations such as Button 1 + Button 2.'),
86
-
crossDeviceComboGesture()
85
+
comboGesture('GameControllerCombo','Game Controller',['gameController'],'Game Controller Combo. Use for controller combinations such as Button 1 + Button 2. Cross-device combinations such as Joystick Button 1 + Keyboard Alt are supported during combo capture.')
87
86
]);
88
87
89
88
exportfunctioninputDeviceCapabilities({
@@ -259,22 +258,6 @@ function comboGesture(binding, deviceLabel, requiredDeviceIds, title) {
title: 'Cross-device Combo. Use for combinations such as Joystick Button 1 + Keyboard Alt. Capture any two keyboard, mouse, wheel, or game controller inputs for one selected action.'
await expect(page.locator(".input-mapping-v2__gesture-button[data-input-mapping-gesture-binding='MousePrimaryDrag']")).toHaveAttribute("title", /continuous movement while held/);
0 commit comments