From 744602d0e31c84a5d118940c1433270164bece9b Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Fri, 4 Mar 2011 00:46:45 +0000 Subject: [PATCH] - more keyboard handler cleanup related to special key presses (like shift) --- source/glest_game/game/game.cpp | 3 ++- source/shared_lib/sources/platform/sdl/window.cpp | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index 7ec5fc9f..9fad566a 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -1302,7 +1302,8 @@ void Game::keyDown(char key) { chatManager.keyDown(key); if(chatManager.getEditEnabled() == false) { - SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = %d\n",__FILE__,__FUNCTION__,__LINE__,key); + SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%d - %c]\n",__FILE__,__FUNCTION__,__LINE__,key,key); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] key = [%d - %c]\n",__FILE__,__FUNCTION__,__LINE__,key,key); Config &configKeys = Config::getInstance(std::pair(cfgMainKeys,cfgUserKeys)); diff --git a/source/shared_lib/sources/platform/sdl/window.cpp b/source/shared_lib/sources/platform/sdl/window.cpp index e87f6804..0e4b7272 100644 --- a/source/shared_lib/sources/platform/sdl/window.cpp +++ b/source/shared_lib/sources/platform/sdl/window.cpp @@ -600,16 +600,20 @@ MouseButton Window::getMouseButton(int sdlButton) { char Window::getRawKey(SDL_keysym keysym) { char result = 0; Uint16 c = keysym.unicode; - if((c & 0xFF80) == 0) { + if(c != 0 && (c & 0xFF80) == 0) { SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); c = keysym.unicode & 0x7F; - c = toupper(c); + //c = toupper(c); result = (c & 0xFF); + //if(c != 0) { if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] returning key [%d]\n",__FILE__,__FUNCTION__,__LINE__,result); return result; + //} + } + if(keysym.sym <= 255) { + result = keysym.sym; } - result = keysym.sym; if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] returning key [%d]\n",__FILE__,__FUNCTION__,__LINE__,result); return result; @@ -854,7 +858,7 @@ char Window::getKey(SDL_keysym keysym,bool skipSpecialKeys) { if((c & 0xFF80) == 0) { SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); c = keysym.unicode & 0x7F; - c = toupper(c); + //c = toupper(c); if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] #1 (c & 0xFF) [%d]\n",__FILE__,__FUNCTION__,__LINE__,(c & 0xFF));