From c61be654d6d7c6269f9a4835f966a23ee9a980a4 Mon Sep 17 00:00:00 2001 From: d_m Date: Tue, 14 Feb 2023 21:32:56 -0500 Subject: [PATCH] Pass through more keysyms when control is pressed. --- src/uxnemu.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/uxnemu.c b/src/uxnemu.c index 4fd0a16..3493a32 100644 --- a/src/uxnemu.c +++ b/src/uxnemu.c @@ -341,11 +341,16 @@ get_vector_joystick(SDL_Event *event) static Uint8 get_key(SDL_Event *event) { + int sym = event->key.keysym.sym; SDL_Keymod mods = SDL_GetModState(); - if(event->key.keysym.sym < 0x20 || event->key.keysym.sym == SDLK_DELETE) - return event->key.keysym.sym; - if((mods & KMOD_CTRL) && event->key.keysym.sym >= SDLK_a && event->key.keysym.sym <= SDLK_z) - return event->key.keysym.sym - (mods & KMOD_SHIFT) * 0x20; + if(sym < 0x20 || sym == SDLK_DELETE) + return sym; + if(mods & KMOD_CTRL) { + if(sym < SDLK_a) + return sym; + else if(sym <= SDLK_z) + return sym - (mods & KMOD_SHIFT) * 0x20; + } return 0x00; }