mirror of
https://github.com/glest/glest-source.git
synced 2025-08-17 21:51:17 +02:00
- fixed issue #88 (numpad keys work now)
This commit is contained in:
@@ -547,14 +547,19 @@ void MenuStateKeysetup::keyUp(SDL_KeyboardEvent key) {
|
|||||||
|
|
||||||
string keyName = "";
|
string keyName = "";
|
||||||
//if(hotkeyChar > SDLK_UNKNOWN && hotkeyChar < SDL_NUM_SCANCODES) {
|
//if(hotkeyChar > SDLK_UNKNOWN && hotkeyChar < SDL_NUM_SCANCODES) {
|
||||||
|
|
||||||
|
keyName = SDL_GetKeyName(key.keysym.sym);
|
||||||
|
if(StartsWith(keyName,"Keypad ") == false) {
|
||||||
keyName = SDL_GetKeyName(hotkeyChar);
|
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);
|
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;
|
//SDLKey keysym = SDLK_UNKNOWN;
|
||||||
if(keyName == "unknown key" || keyName == "") {
|
// if(keyName == "unknown key" || keyName == "") {
|
||||||
// Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
// Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
||||||
// keysym = configKeys.translateSpecialStringToSDLKey(hotkeyChar);
|
// keysym = configKeys.translateSpecialStringToSDLKey(hotkeyChar);
|
||||||
//
|
//
|
||||||
@@ -568,7 +573,7 @@ void MenuStateKeysetup::keyUp(SDL_KeyboardEvent key) {
|
|||||||
// key = keysym;
|
// key = keysym;
|
||||||
// }
|
// }
|
||||||
// keyName = SDL_GetKeyName(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);
|
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
|
// Need to distinguish numeric keys to be translated to real keys
|
||||||
// from these ACTUAL sdl keys so surround in quotes.
|
// 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') {
|
if(keyName.size() == 1 && keyName[0] >= '0' && keyName[0] <= '9') {
|
||||||
keyName = "'" + keyName + "'";
|
keyName = "'" + keyName + "'";
|
||||||
}
|
}
|
||||||
|
//printf("KeyUp #2 keyName [%s]\n", keyName.c_str());
|
||||||
|
|
||||||
bool isNewUserKeyEntry = true;
|
bool isNewUserKeyEntry = true;
|
||||||
for(int i = 0; i < (int)userProperties.size(); ++i) {
|
for(int i = 0; i < (int)userProperties.size(); ++i) {
|
||||||
|
@@ -430,6 +430,7 @@ bool Window::handleEvent() {
|
|||||||
keystate = event.key.keysym;
|
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);
|
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) {
|
if(global_window) {
|
||||||
global_window->eventKeyUp(event.key);
|
global_window->eventKeyUp(event.key);
|
||||||
|
Reference in New Issue
Block a user