- fixed issue #88 (numpad keys work now)

This commit is contained in:
SoftCoder 2015-12-22 23:12:33 -08:00
parent b3c9140574
commit 2f52e01a76
2 changed files with 13 additions and 4 deletions

View File

@ -547,14 +547,19 @@ void MenuStateKeysetup::keyUp(SDL_KeyboardEvent key) {
string keyName = "";
//if(hotkeyChar > SDLK_UNKNOWN && hotkeyChar < SDL_NUM_SCANCODES) {
keyName = SDL_GetKeyName(hotkeyChar);
keyName = SDL_GetKeyName(key.keysym.sym);
if(StartsWith(keyName,"Keypad ") == false) {
keyName = SDL_GetKeyName(hotkeyChar);
key.keysym.sym = hotkeyChar;
}
//}
key.keysym.sym = hotkeyChar;
//key.keysym.sym = hotkeyChar;
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] keyName [%s] char [%d][%d]\n",__FILE__,__FUNCTION__,__LINE__,keyName.c_str(),hotkeyChar,key.keysym.sym);
//SDLKey keysym = SDLK_UNKNOWN;
if(keyName == "unknown key" || keyName == "") {
// if(keyName == "unknown key" || keyName == "") {
// Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
// keysym = configKeys.translateSpecialStringToSDLKey(hotkeyChar);
//
@ -568,7 +573,7 @@ void MenuStateKeysetup::keyUp(SDL_KeyboardEvent key) {
// key = keysym;
// }
// keyName = SDL_GetKeyName(keysym);
}
// }
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] keyName [%s] char [%d][%d]\n",__FILE__,__FUNCTION__,__LINE__,keyName.c_str(),hotkeyChar,key.keysym.sym);
@ -580,9 +585,12 @@ void MenuStateKeysetup::keyUp(SDL_KeyboardEvent key) {
// Need to distinguish numeric keys to be translated to real keys
// from these ACTUAL sdl keys so surround in quotes.
//printf("KeyUp #1 keyName [%s]\n", keyName.c_str());
if(keyName.size() == 1 && keyName[0] >= '0' && keyName[0] <= '9') {
keyName = "'" + keyName + "'";
}
//printf("KeyUp #2 keyName [%s]\n", keyName.c_str());
bool isNewUserKeyEntry = true;
for(int i = 0; i < (int)userProperties.size(); ++i) {

View File

@ -430,6 +430,7 @@ bool Window::handleEvent() {
keystate = event.key.keysym;
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] KEY_UP, Raw SDL key [%d] mod [%d] scancode [%d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode);
//printf("In [%s::%s Line: %d] KEY_UP, Raw SDL key [%d] mod [%d] scancode [%d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode);
if(global_window) {
global_window->eventKeyUp(event.key);