Add physical_scancode (keyboard layout independent keycodes) to InputEventKey and InputMap.

Fix non-latin keyboard layout keycodes on Linux/X11 (fallback to physical keycodes).
This commit is contained in:
bruvzg 2021-03-07 17:16:42 +02:00
parent 63391f645c
commit dab4cf3ed6
No known key found for this signature in database
GPG key ID: 009E1BFE42239B95
28 changed files with 458 additions and 35 deletions

View file

@ -241,6 +241,7 @@ static Ref<InputEventKey> setup_key_event(const EmscriptenKeyboardEvent *emscrip
ev->set_echo(emscripten_event->repeat);
dom2godot_mod(emscripten_event, ev);
ev->set_scancode(dom_code2godot_scancode(emscripten_event->code, emscripten_event->key));
ev->set_physical_scancode(dom_code2godot_scancode(emscripten_event->code, emscripten_event->key));
String unicode = String::utf8(emscripten_event->key);
// Check if empty or multi-character (e.g. `CapsLock`).