diff --git a/CHANGELOG.md b/CHANGELOG.md index f2808a9a..34cc907f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,24 @@ change type. Preview the next one with `ludic dev release --dry-run`. A released section may carry a hand-written summary paragraph above its groups (v0.2.0 has one); the generated bullets below it are not edited by hand. +## v0.16.2 — 2026-09-15 + +### Fixes + +- **Keys are physical positions on Windows and macOS, whatever the layout** - `Input.key_down('w')` + is the key above S on every keyboard. + + - **Windows** keyed the held set by the character the active layout gave a virtual key, so + a game's WASD belonged to whatever the layout put there: on AZERTY W and A were other + keys, and with an input method on (Chinese, Japanese, Korean) every letter arrived as + VK_PROCESSKEY and no letter key worked at all. The typing block is now read from the + scancode; the arrows, the numpad and the F-keys still go by virtual key, and the frame + key (`Input.key`, typing) keeps the layout's character. + - **macOS** did the same through `charactersIgnoringModifiers`; it now reads `keyCode`. + - **`Input.key_label(key)`** names a key for the player in their own layout - `'w'` shows + as "W" on QWERTY and "Z" on AZERTY - so a game that shows its bindings never shows a + key the player cannot find. Windows reads the layout; headless, macOS and the browser + give the US character. ## v0.16.1 — 2026-09-15 ### Features diff --git a/VERSION b/VERSION index 2a0970ca..201a22c8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.16.1 +0.16.2 diff --git a/changes/physical-keys.md b/changes/physical-keys.md deleted file mode 100644 index 860f85c7..00000000 --- a/changes/physical-keys.md +++ /dev/null @@ -1,16 +0,0 @@ -bump: patch -type: fix -**Keys are physical positions on Windows and macOS, whatever the layout** - `Input.key_down('w')` -is the key above S on every keyboard. - -- **Windows** keyed the held set by the character the active layout gave a virtual key, so - a game's WASD belonged to whatever the layout put there: on AZERTY W and A were other - keys, and with an input method on (Chinese, Japanese, Korean) every letter arrived as - VK_PROCESSKEY and no letter key worked at all. The typing block is now read from the - scancode; the arrows, the numpad and the F-keys still go by virtual key, and the frame - key (`Input.key`, typing) keeps the layout's character. -- **macOS** did the same through `charactersIgnoringModifiers`; it now reads `keyCode`. -- **`Input.key_label(key)`** names a key for the player in their own layout - `'w'` shows - as "W" on QWERTY and "Z" on AZERTY - so a game that shows its bindings never shows a - key the player cannot find. Windows reads the layout; headless, macOS and the browser - give the US character.