Allow adding keys with Unicode names on macOS
This commit is contained in:
parent
3f926dfd8b
commit
f05eefcc20
@ -288,10 +288,16 @@ static int translateKey(unsigned int key, bool apply_keymap)
|
|||||||
{
|
{
|
||||||
if (apply_keymap) {
|
if (apply_keymap) {
|
||||||
// Look for the effective key name after applying any keyboard layouts/mappings
|
// Look for the effective key name after applying any keyboard layouts/mappings
|
||||||
const char *name = _glfwPlatformGetScancodeName(key);
|
const char *name_chars = _glfwPlatformGetScancodeName(key);
|
||||||
if (name && name[1] == 0) {
|
uint32_t name = 0;
|
||||||
// Single letter key name
|
for (int i = 0; i < 4; i++) {
|
||||||
switch(name[0]) {
|
if (!name_chars[i]) break;
|
||||||
|
name <<= 8;
|
||||||
|
name |= (uint8_t)name_chars[i];
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
// Key name
|
||||||
|
switch(name) {
|
||||||
#define K(ch, name) case ch: return GLFW_KEY_##name
|
#define K(ch, name) case ch: return GLFW_KEY_##name
|
||||||
K('A', A); K('a', A);
|
K('A', A); K('a', A);
|
||||||
K('B', B); K('b', B);
|
K('B', B); K('b', B);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user