Version
v0.12.0-beta.5
Problem
While configuring an MX Master 3 thumb button (Logitech Control 0x00C3), the advanced Button Mappings recorder repeatedly recognizes Long Press instead of a swipe. Adding the desired short-press and four swipe outcomes directly to the configuration works, so these actions can be configured without the recorder. Independence from Options+ is being checked separately; this report does not claim a confirmed HID movement-delivery cause.
There is a deterministic recorder problem in ButtonMappingRecordingEngine: after 500 ms, advance(to:) sets recognition to .longPress, and pointerMoved rejects further movement because it requires recognition == nil. A user who pauses before dragging cannot record a swipe. Ordered button and wheel inputs already replace this provisional long press while the button remains held.
Reproduction in the recording engine
- Send button down for Logitech Control 0xC3 at 0 ms.
- Advance to 500 ms: the preview becomes Long Press.
- Send two straight upward movement deltas of 30 points each at 700 and 800 ms.
- Release at 900 ms.
Actual: Long Press remains recorded.
Expected: Swipe Up replaces the provisional Long Press once the swipe threshold is reached. Long Press should remain selected when released without sufficient movement.
Proposed scope
Allow movement to replace a provisional long press in the recorder, matching its existing ordered-button and wheel recording behavior. Preserve completed outcomes and the runtime action recognizer's commitment rules.
Version
v0.12.0-beta.5
Problem
While configuring an MX Master 3 thumb button (Logitech Control 0x00C3), the advanced Button Mappings recorder repeatedly recognizes Long Press instead of a swipe. Adding the desired short-press and four swipe outcomes directly to the configuration works, so these actions can be configured without the recorder. Independence from Options+ is being checked separately; this report does not claim a confirmed HID movement-delivery cause.
There is a deterministic recorder problem in
ButtonMappingRecordingEngine: after 500 ms,advance(to:)sets recognition to.longPress, andpointerMovedrejects further movement because it requiresrecognition == nil. A user who pauses before dragging cannot record a swipe. Ordered button and wheel inputs already replace this provisional long press while the button remains held.Reproduction in the recording engine
Actual: Long Press remains recorded.
Expected: Swipe Up replaces the provisional Long Press once the swipe threshold is reached. Long Press should remain selected when released without sufficient movement.
Proposed scope
Allow movement to replace a provisional long press in the recorder, matching its existing ordered-button and wheel recording behavior. Preserve completed outcomes and the runtime action recognizer's commitment rules.