- fix special keys in sld2 (like arrow key)
This commit is contained in:
parent
8991507526
commit
6707343ac4
|
@ -4601,6 +4601,8 @@ void Game::keyDown(SDL_KeyboardEvent key) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//printf("In game checking keypress for key [%d]\n",key.keysym.sym);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c] [%d] gameStarted [%d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,key.keysym.sym,key.keysym.sym, gameStarted);
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c] [%d] gameStarted [%d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,key.keysym.sym,key.keysym.sym, gameStarted);
|
||||||
if(gameStarted == false || totalRenderFps <= 0) {
|
if(gameStarted == false || totalRenderFps <= 0) {
|
||||||
|
@ -4641,6 +4643,8 @@ void Game::keyDown(SDL_KeyboardEvent key) {
|
||||||
setMarkerKeyAllowsModifier = true;
|
setMarkerKeyAllowsModifier = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//printf("In game checking keypress for key [%d] camera left [%d]\n",key.keysym.sym,configKeys.getSDLKey("CameraModeLeft"));
|
||||||
|
|
||||||
if(isKeyPressed(configKeys.getSDLKey("RenderInGamePerformance"),key, false) == true) {
|
if(isKeyPressed(configKeys.getSDLKey("RenderInGamePerformance"),key, false) == true) {
|
||||||
renderInGamePerformance = !renderInGamePerformance;
|
renderInGamePerformance = !renderInGamePerformance;
|
||||||
|
|
||||||
|
|
|
@ -1093,6 +1093,8 @@ void MainWindow::toggleLanguage(string language) {
|
||||||
void MainWindow::eventKeyDown(SDL_KeyboardEvent key) {
|
void MainWindow::eventKeyDown(SDL_KeyboardEvent key) {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] [%d]\n",__FILE__,__FUNCTION__,__LINE__,key.keysym.sym);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] [%d]\n",__FILE__,__FUNCTION__,__LINE__,key.keysym.sym);
|
||||||
|
|
||||||
|
//printf("In mainwindow checking keypress for key [%d]\n",key.keysym.sym);
|
||||||
|
|
||||||
SDL_keysym keystate = key.keysym;
|
SDL_keysym keystate = key.keysym;
|
||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c][%d]\n",__FILE__,__FUNCTION__,__LINE__,key,key);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] key = [%c][%d]\n",__FILE__,__FUNCTION__,__LINE__,key,key);
|
||||||
|
|
|
@ -79,29 +79,26 @@ static HWND GetSDLWindow()
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static bool isUnprintableChar(SDL_keysym key)
|
static bool isUnprintableChar(SDL_keysym key) {
|
||||||
{
|
switch (key.sym) {
|
||||||
// U+0000 to U+001F are control characters
|
// We want to allow some, which are handled specially
|
||||||
if (key.sym < 0x20)
|
case SDLK_RETURN:
|
||||||
{
|
case SDLK_TAB:
|
||||||
switch (key.sym)
|
case SDLK_BACKSPACE:
|
||||||
{
|
case SDLK_DELETE:
|
||||||
// We want to allow some, which are handled specially
|
case SDLK_HOME:
|
||||||
case SDLK_RETURN: case SDLK_TAB:
|
case SDLK_END:
|
||||||
case SDLK_BACKSPACE: case SDLK_DELETE:
|
case SDLK_LEFT:
|
||||||
case SDLK_HOME: case SDLK_END:
|
case SDLK_RIGHT:
|
||||||
case SDLK_LEFT: case SDLK_RIGHT:
|
case SDLK_UP:
|
||||||
case SDLK_UP: case SDLK_DOWN:
|
case SDLK_DOWN:
|
||||||
case SDLK_PAGEUP: case SDLK_PAGEDOWN:
|
case SDLK_PAGEUP:
|
||||||
return true;
|
case SDLK_PAGEDOWN:
|
||||||
|
return true;
|
||||||
// Ignore the others
|
default:
|
||||||
default:
|
// U+0000 to U+001F are control characters
|
||||||
return true;
|
return (key.sym < 0x20);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Window::Window() {
|
Window::Window() {
|
||||||
|
@ -280,7 +277,7 @@ bool Window::handleEvent() {
|
||||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] Raw SDL key [%d - %c] mod [%d] scancode [%d] keyName [%s]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode,keyName.c_str());
|
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("In [%s::%s Line: %d] Raw SDL key [%d - %c] mod [%d] scancode [%d] keyName [%s]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode,keyName.c_str());
|
||||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Raw SDL key [%d] mod [%d] scancode [%d] keyName [%s]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode,keyName.c_str());
|
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Raw SDL key [%d] mod [%d] scancode [%d] keyName [%s]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,event.key.keysym.sym,event.key.keysym.mod,event.key.keysym.scancode,keyName.c_str());
|
||||||
|
|
||||||
//printf("In SDL_TEXTINPUT key [%s] keyName [%s] mod: %d\n",event.text.text,keyName.c_str(),event.key.keysym.mod);
|
//printf("In SDL_TEXTINPUT key [%s] keyName [%s] mod: %d global_window: %p\n",event.text.text,keyName.c_str(),event.key.keysym.mod,global_window);
|
||||||
|
|
||||||
/* handle ALT+Return */
|
/* handle ALT+Return */
|
||||||
if((keyName == "Return" || keyName == "Enter")
|
if((keyName == "Return" || keyName == "Enter")
|
||||||
|
@ -304,6 +301,7 @@ bool Window::handleEvent() {
|
||||||
//event.key.keysym.mod = SDL_GetModState();
|
//event.key.keysym.mod = SDL_GetModState();
|
||||||
|
|
||||||
event.key.keysym.sym = event.text.text[0];
|
event.key.keysym.sym = event.text.text[0];
|
||||||
|
|
||||||
global_window->eventKeyDown(event.key);
|
global_window->eventKeyDown(event.key);
|
||||||
global_window->eventKeyPress(event.key);
|
global_window->eventKeyPress(event.key);
|
||||||
|
|
||||||
|
@ -331,7 +329,7 @@ bool Window::handleEvent() {
|
||||||
// Stop unprintable characters (ctrl+, alt+ and escape),
|
// Stop unprintable characters (ctrl+, alt+ and escape),
|
||||||
// also prevent ` and/or ~ appearing in console every time it's toggled.
|
// also prevent ` and/or ~ appearing in console every time it's toggled.
|
||||||
if (!isUnprintableChar(event.key.keysym)) {
|
if (!isUnprintableChar(event.key.keysym)) {
|
||||||
//printf("In SDL_KEYDOWN key SKIP\n");
|
//printf("In SDL_KEYDOWN key SKIP [%d]\n",event.key.keysym.sym);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
codeLocation = "i";
|
codeLocation = "i";
|
||||||
|
|
Loading…
Reference in New Issue