From b97687c7722a44f5e9127e885fdac468942ca2f1 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Wed, 9 Mar 2011 06:15:09 +0000 Subject: [PATCH] - possible bugfix on windows for special key values --- source/glest_game/menu/menu_state_keysetup.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/glest_game/menu/menu_state_keysetup.cpp b/source/glest_game/menu/menu_state_keysetup.cpp index 8645ccf3..70664c74 100644 --- a/source/glest_game/menu/menu_state_keysetup.cpp +++ b/source/glest_game/menu/menu_state_keysetup.cpp @@ -330,13 +330,18 @@ void MenuStateKeysetup::keyUp(char key) { if(hotkeyIndex >= 0) { if(hotkeyChar != 0) { - string keyName = SDL_GetKeyName(static_cast(hotkeyChar)); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] char [%d][%d]\n",__FILE__,__FUNCTION__,__LINE__,hotkeyChar,key); + + string keyName = ""; + if(hotkeyChar > SDLK_UNKNOWN && hotkeyChar < SDLK_LAST) { + keyName = SDL_GetKeyName(static_cast(hotkeyChar)); + } key = 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); SDLKey keysym = SDLK_UNKNOWN; - if(keyName == "unknown key") { + if(keyName == "unknown key" || keyName == "") { Config &configKeys = Config::getInstance(std::pair(cfgMainKeys,cfgUserKeys)); keysym = configKeys.translateSpecialStringToSDLKey(hotkeyChar);