Improve keyboard management. Note: F12 switch between menu & emulation

This commit is contained in:
Chips 2016-04-02 15:28:06 +00:00
parent 42006316d3
commit cad16d836e
8 changed files with 441 additions and 6 deletions

View file

@ -171,7 +171,7 @@ namespace sdl
gui_running = false;
break;
case SDLK_LCTRL:
case SDLK_F12:
if(emulating && widgets::cmdStart->isEnabled())
{
//------------------------------------------------

View file

@ -704,7 +704,9 @@ void handle_events (void)
/* Handle GUI events */
gui_handle_events ();
#ifdef PANDORA_SPECIFIC
handle_joymouse();
#endif
while (SDL_PollEvent(&rEvent))
{
@ -762,11 +764,12 @@ void handle_events (void)
if (rEvent.key.keysym.sym==SDLK_RSHIFT || rEvent.key.keysym.sym==SDLK_RCTRL)
doStylusRightClick = 1;
#ifdef PANDORA_SPECIFIC
if (rEvent.key.keysym.sym!=SDLK_UP && rEvent.key.keysym.sym!=SDLK_DOWN && rEvent.key.keysym.sym!=SDLK_LEFT &&
rEvent.key.keysym.sym!=SDLK_RIGHT && rEvent.key.keysym.sym!=SDLK_PAGEUP && rEvent.key.keysym.sym!=SDLK_PAGEDOWN &&
rEvent.key.keysym.sym!=SDLK_HOME && rEvent.key.keysym.sym!=SDLK_END && rEvent.key.keysym.sym!=SDLK_LALT &&
rEvent.key.keysym.sym!=SDLK_LCTRL && rEvent.key.keysym.sym!=SDLK_RSHIFT && rEvent.key.keysym.sym!=SDLK_RCTRL)
#endif
{
iAmigaKeyCode = keycode2amiga(&(rEvent.key.keysym));
if (iAmigaKeyCode >= 0)
@ -839,10 +842,12 @@ void handle_events (void)
{
show_inputmode = 0;
}
#ifdef PANDORA_SPECIFIC
if (rEvent.key.keysym.sym!=SDLK_UP && rEvent.key.keysym.sym!=SDLK_DOWN && rEvent.key.keysym.sym!=SDLK_LEFT &&
rEvent.key.keysym.sym!=SDLK_RIGHT && rEvent.key.keysym.sym!=SDLK_PAGEUP && rEvent.key.keysym.sym!=SDLK_PAGEDOWN &&
rEvent.key.keysym.sym!=SDLK_HOME && rEvent.key.keysym.sym!=SDLK_END && rEvent.key.keysym.sym!=SDLK_LALT &&
rEvent.key.keysym.sym!=SDLK_LCTRL && rEvent.key.keysym.sym!=SDLK_RSHIFT && rEvent.key.keysym.sym!=SDLK_RCTRL)
#endif
{
iAmigaKeyCode = keycode2amiga(&(rEvent.key.keysym));
if (iAmigaKeyCode >= 0)

View file

@ -533,9 +533,13 @@ void gui_handle_events (void)
triggerL = keystate[SDLK_RSHIFT];
triggerR = keystate[SDLK_RCTRL];
if(keystate[SDLK_LCTRL])
if(keystate[SDLK_F12])
goMenu();
#ifndef PANDORA_SPECIFIC
return;
#endif
//L + R
if(triggerL && triggerR)
{