mirror of
https://github.com/glfw/glfw.git
synced 2025-06-15 12:12:16 +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;
|
UINT charVK;
|
||||||
WCHAR keyName[2];
|
WCHAR keyName[2];
|
||||||
int vkKey = 0;
|
int vkKey = 0;
|
||||||
|
int length;
|
||||||
|
|
||||||
free(_glfw.win32.keyName);
|
free(_glfw.win32.keyName);
|
||||||
_glfw.win32.keyName = NULL;
|
_glfw.win32.keyName = NULL;
|
||||||
@ -1200,11 +1201,39 @@ const char*_glfwPlatformGetKeyName(int key)
|
|||||||
keyName[0] = charVK;
|
keyName[0] = charVK;
|
||||||
keyName[1] = 0;
|
keyName[1] = 0;
|
||||||
_glfw.win32.keyName = _glfwCreateUTF8FromWideString(keyName);
|
_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
|
// key could not be mapped or was not a printable key
|
||||||
// fall back to hard-coded values but do not set _glfw.win32.keyName
|
// fall back to hard-coded values but do not set _glfw.win32.keyName
|
||||||
switch (key)
|
switch (key)
|
||||||
@ -1333,13 +1362,9 @@ const char*_glfwPlatformGetKeyName(int key)
|
|||||||
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
case GLFW_KEY_RIGHT_SUPER: return "RIGHT SUPER";
|
||||||
case GLFW_KEY_MENU: return "MENU";
|
case GLFW_KEY_MENU: return "MENU";
|
||||||
case GLFW_KEY_UNKNOWN: return "UNKNOWN";
|
case GLFW_KEY_UNKNOWN: return "UNKNOWN";
|
||||||
|
|
||||||
default: return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
return _glfw.win32.keyName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user