mirror of
https://github.com/glfw/glfw.git
synced 2025-06-15 20:22:15 +00:00
glfwGetKeyName(int key) - Windows version consistency improvements
This commit is contained in:
parent
5205f071a4
commit
2a59848c8f
@ -1128,6 +1128,7 @@ const char*_glfwPlatformGetKeyName(int key)
|
||||
UINT charVK;
|
||||
WCHAR keyName[2];
|
||||
int vkKey = 0;
|
||||
int length;
|
||||
|
||||
free(_glfw.win32.keyName);
|
||||
_glfw.win32.keyName = NULL;
|
||||
@ -1200,11 +1201,39 @@ const char*_glfwPlatformGetKeyName(int key)
|
||||
keyName[0] = charVK;
|
||||
keyName[1] = 0;
|
||||
_glfw.win32.keyName = _glfwCreateUTF8FromWideString(keyName);
|
||||
|
||||
// need to ensure common chars are interpreted similarily:
|
||||
length = strlen(_glfw.win32.keyName);
|
||||
if(length=1)
|
||||
{
|
||||
if(_glfw.win32.keyName[0]>='a' && _glfw.win32.keyName[0]<='z')
|
||||
{
|
||||
// Capitalize
|
||||
_glfw.win32.keyName[0] += 'A'-'a';
|
||||
}
|
||||
|
||||
switch(_glfw.win32.keyName[0])
|
||||
{
|
||||
case ' ': return "SPACE";
|
||||
case '-': return "MINUS";
|
||||
case '=': return "EQUAL";
|
||||
case '[': return "LEFT BRACKET";
|
||||
case ']': return "RIGHT BRACKET";
|
||||
case '\\': return "BACKSLASH";
|
||||
case ';': return "SEMICOLON";
|
||||
case '\'': return "APOSTROPHE";
|
||||
case '`': return "GRAVE ACCENT";
|
||||
case ',': return "COMMA";
|
||||
case '.': return "PERIOD";
|
||||
case '/': return "SLASH";
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
return _glfw.win32.keyName;
|
||||
}
|
||||
}
|
||||
|
||||
if( NULL == _glfw.win32.keyName )
|
||||
{
|
||||
// key could not be mapped or was not a printable key
|
||||
// fall back to hard-coded values but do not set _glfw.win32.keyName
|
||||
switch (key)
|
||||
@ -1333,13 +1362,9 @@ const char*_glfwPlatformGetKeyName(int key)
|
||||
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
||||
case GLFW_KEY_MENU: return "MENU";
|
||||
case GLFW_KEY_UNKNOWN: return "UNKNOWN";
|
||||
|
||||
default: return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return _glfw.win32.keyName;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
Reference in New Issue
Block a user