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:
Sam Lantinga 2009-01-04 17:10:04 +00:00
parent 17068c0bf6
commit ff8b5276a7
2 changed files with 31 additions and 16 deletions

View file

@ -49,11 +49,11 @@ enum
{ {
SDLK_UNKNOWN = 0, SDLK_UNKNOWN = 0,
SDLK_RETURN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN), SDLK_RETURN = '\r',
SDLK_ESCAPE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ESCAPE), SDLK_ESCAPE = '\033',
SDLK_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BACKSPACE), SDLK_BACKSPACE = '\b',
SDLK_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_TAB), SDLK_TAB = '\t',
SDLK_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SPACE), SDLK_SPACE = ' ',
SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK),
@ -76,7 +76,7 @@ enum
SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT),
SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME),
SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), 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_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END),
SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN),
SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT),

View file

@ -973,17 +973,32 @@ SDL_GetKeyName(SDLKey key)
SDL_GetScancodeName((SDL_scancode) (key & ~SDLK_SCANCODE_MASK)); SDL_GetScancodeName((SDL_scancode) (key & ~SDLK_SCANCODE_MASK));
} }
/* Unaccented letter keys on latin keyboards are normally switch (key) {
labeled in upper case (and probably on others like Greek or case SDLK_RETURN:
Cyrillic too, so if you happen to know for sure, please return SDL_GetScancodeName(SDL_SCANCODE_RETURN);
adapt this). */ case SDLK_ESCAPE:
if (key >= 'a' && key <= 'z') { return SDL_GetScancodeName(SDL_SCANCODE_ESCAPE);
key -= 32; 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 = SDL_UCS4ToUTF8((Uint32) key, name);
*end = '\0'; *end = '\0';
return name; return name;
}
} }
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */