Unify key name string handling

This makes key names per-key static strings for all supported platforms.

Fixes #1200.
This commit is contained in:
Camilla Löwy
2019-08-22 21:31:46 +02:00
parent 4cc5d2e623
commit 56ca0cb3b3
5 changed files with 16 additions and 11 deletions
+6 -4
View File
@@ -1503,8 +1503,10 @@ const char* _glfwPlatformGetScancodeName(int scancode)
{
@autoreleasepool {
const int key = _glfw.ns.keycodes[scancode];
UInt32 deadKeyState = 0;
UniChar characters[8];
UniChar characters[4];
UniCharCount characterCount = 0;
if (UCKeyTranslate([(NSData*) _glfw.ns.unicodeData bytes],
@@ -1529,12 +1531,12 @@ const char* _glfwPlatformGetScancodeName(int scancode)
characterCount,
kCFAllocatorNull);
CFStringGetCString(string,
_glfw.ns.keyName,
sizeof(_glfw.ns.keyName),
_glfw.ns.keynames[key],
sizeof(_glfw.ns.keynames[key]),
kCFStringEncodingUTF8);
CFRelease(string);
return _glfw.ns.keyName;
return _glfw.ns.keynames[key];
} // autoreleasepool
}