acdream/tests/AcDream.UI.Abstractions.Tests/Input
Erik 242ce706ef feat(B.4b): InputDispatcher detects double-clicks
Visual test of the B.4b handler revealed the dispatcher never fired
SelectDblLeft. OnMouseDown was only looking up Press and Hold
activations — DoubleClick bindings in KeyBindings.cs were effectively
dead code.

Adds 500ms-threshold double-click detection: tracks last-mouse-down
button + Environment.TickCount64 timestamp; a same-button press within
the threshold additionally fires ActivationType.DoubleClick for the
matching binding (Press still fires normally for the second click).
Clears the pair-state after firing so a triple-click doesn't produce
a second DoubleClick.

Tests cover same-button within threshold, beyond threshold (no fire),
different-button (no fire), and triple-click (fresh pair required).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 18:10:25 +02:00
..
FakeKeyboardSource.cs feat(input): #21 Phase K.1a - input architecture skeleton (parallel to existing handlers) 2026-04-25 23:17:41 +02:00
FakeMouseSource.cs feat(input): #21 Phase K.1a - input architecture skeleton (parallel to existing handlers) 2026-04-25 23:17:41 +02:00
InputDispatcherCaptureTests.cs feat(ui): #25 Phase K.3 — Settings panel + click-to-rebind + Phase K shipped 2026-04-26 09:44:56 +02:00
InputDispatcherDoubleClickTests.cs feat(B.4b): InputDispatcher detects double-clicks 2026-05-13 18:10:25 +02:00
InputDispatcherIsActionHeldTests.cs fix(input): Phase K live-test fixes pt3 — fly→chase round-trip, Shift coexists, run-speed for backward + strafe 2026-04-26 14:48:45 +02:00
InputDispatcherTests.cs feat(input): #22 Phase K.1b - cut handlers over to dispatcher (single input path) 2026-04-25 23:43:11 +02:00
KeyBindingsJsonTests.cs feat(input): #23 Phase K.1c - retail-faithful keymap cutover + JSON persistence (muscle memory change) 2026-04-26 00:14:25 +02:00
KeyBindingsRetailTests.cs feat(input): #23 Phase K.1c - retail-faithful keymap cutover + JSON persistence (muscle memory change) 2026-04-26 00:14:25 +02:00
KeyBindingsTests.cs feat(input): #23 Phase K.1c - retail-faithful keymap cutover + JSON persistence (muscle memory change) 2026-04-26 00:14:25 +02:00
KeyChordTests.cs feat(input): #21 Phase K.1a - input architecture skeleton (parallel to existing handlers) 2026-04-25 23:17:41 +02:00
MmbMouseLookTests.cs feat(input): #24 Phase K.2 - auto-enter player mode at login + MMB mouse-look + DebugPanel free-fly + Tab to chat-input focus 2026-04-26 09:20:17 +02:00
ModifierMaskTests.cs feat(input): #21 Phase K.1a - input architecture skeleton (parallel to existing handlers) 2026-04-25 23:17:41 +02:00