ludic/selfhost/backend
Orkuncakilkaya 619476ffed fix(input): keys are physical positions on every layout; Input.key_label names them
The Windows runtime keyed the held set by the character MapVirtualKeyA gave a
virtual key, so a game's WASD belonged to whatever the active layout put there,
and with an input method on every letter arrived as VK_PROCESSKEY. The typing
block is now read from the scancode (the arrows, numpad and F-keys still by
virtual key); macOS reads keyCode the same way. Input.key_label(key) names a key
in the player's own layout (Windows) or as its US character elsewhere.

Verified on Windows with SendInput into a live window: VK_Z carrying W's scancode
holds 'w', VK_PROCESSKEY carrying A's holds 'a', Caps Lock changes nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 23:26:53 +03:00
..
game feat(jobs): real OS threads - Job.parallel_for, fn name, thread-safe Sync 2026-09-15 13:52:22 +03:00
stdlib Merge branch 'fix/arrows-http-backspace': held arrow keys, ludic build Http.* link, macOS Backspace 2026-09-13 03:28:29 +03:00
emit_addr.ludic feat(engine): Tiled P1 — rt_tmap model + GID resolver + render + projection (#69) 2026-09-01 14:43:29 +03:00
emit_call.ludic fix(input): keys are physical positions on every layout; Input.key_label names them 2026-09-15 23:26:53 +03:00
emit_core.ludic feat(pack): asset packs, so a built game is a thing you can hand someone 2026-09-10 16:37:23 +03:00
emit_decl.ludic feat(windows): a Windows target for ludicc, and the compiler builds itself there 2026-09-13 01:59:41 +03:00
emit_expr.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
emit_head.ludic fix(input): keys are physical positions on every layout; Input.key_label names them 2026-09-15 23:26:53 +03:00
emit_intrin.ludic feat(windows): a Windows target for ludicc, and the compiler builds itself there 2026-09-13 01:59:41 +03:00
emit_intrin2.ludic fix(input): keys are physical positions on every layout; Input.key_label names them 2026-09-15 23:26:53 +03:00
emit_mem.ludic refactor(selfhost): reorganise into concern-based subdirectories 2026-08-31 00:26:02 +03:00
emit_new.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
emit_stmt.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00