Make the SDL keysyms that represent unprintable ASCII values actually have
those values, for more intuitive use and better compatibility with SDL 1.2. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403451
This commit is contained in:
parent
17068c0bf6
commit
ff8b5276a7
2 changed files with 31 additions and 16 deletions
|
@ -49,11 +49,11 @@ enum
|
|||
{
|
||||
SDLK_UNKNOWN = 0,
|
||||
|
||||
SDLK_RETURN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN),
|
||||
SDLK_ESCAPE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ESCAPE),
|
||||
SDLK_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BACKSPACE),
|
||||
SDLK_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_TAB),
|
||||
SDLK_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SPACE),
|
||||
SDLK_RETURN = '\r',
|
||||
SDLK_ESCAPE = '\033',
|
||||
SDLK_BACKSPACE = '\b',
|
||||
SDLK_TAB = '\t',
|
||||
SDLK_SPACE = ' ',
|
||||
|
||||
SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK),
|
||||
|
||||
|
@ -76,7 +76,7 @@ enum
|
|||
SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT),
|
||||
SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME),
|
||||
SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP),
|
||||
SDLK_DELETE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DELETE),
|
||||
SDLK_DELETE = '\177',
|
||||
SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END),
|
||||
SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN),
|
||||
SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT),
|
||||
|
|
|
@ -973,17 +973,32 @@ SDL_GetKeyName(SDLKey key)
|
|||
SDL_GetScancodeName((SDL_scancode) (key & ~SDLK_SCANCODE_MASK));
|
||||
}
|
||||
|
||||
/* Unaccented letter keys on latin keyboards are normally
|
||||
labeled in upper case (and probably on others like Greek or
|
||||
Cyrillic too, so if you happen to know for sure, please
|
||||
adapt this). */
|
||||
if (key >= 'a' && key <= 'z') {
|
||||
key -= 32;
|
||||
}
|
||||
switch (key) {
|
||||
case SDLK_RETURN:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_RETURN);
|
||||
case SDLK_ESCAPE:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_ESCAPE);
|
||||
case SDLK_BACKSPACE:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_BACKSPACE);
|
||||
case SDLK_TAB:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_TAB);
|
||||
case SDLK_SPACE:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_SPACE);
|
||||
case SDLK_DELETE:
|
||||
return SDL_GetScancodeName(SDL_SCANCODE_DELETE);
|
||||
default:
|
||||
/* Unaccented letter keys on latin keyboards are normally
|
||||
labeled in upper case (and probably on others like Greek or
|
||||
Cyrillic too, so if you happen to know for sure, please
|
||||
adapt this). */
|
||||
if (key >= 'a' && key <= 'z') {
|
||||
key -= 32;
|
||||
}
|
||||
|
||||
end = SDL_UCS4ToUTF8((Uint32) key, name);
|
||||
*end = '\0';
|
||||
return name;
|
||||
end = SDL_UCS4ToUTF8((Uint32) key, name);
|
||||
*end = '\0';
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue