From 6582f2965ca20ff85dfab36cc77a80d3f302b329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Sat, 29 Apr 2023 13:40:53 -0400 Subject: [PATCH] Don't treat numpad /*-+ differently based on NumLock in SDL This caused double-keys on those when numlock was off. Only the number keys and period need special NumLock handling. Fixes bug 108 on SourceForge, thanks nelgin! --- src/conio/sdl_con.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/conio/sdl_con.c b/src/conio/sdl_con.c index 9309161d79..fc3791a009 100644 --- a/src/conio/sdl_con.c +++ b/src/conio/sdl_con.c @@ -960,12 +960,12 @@ void sdl_video_event_thread(void *data) block_text = 1; if (block_text || ev.key.keysym.sym < 0 || ev.key.keysym.sym > 127) { // NUMLOCK makes - if ((ev.key.keysym.mod & KMOD_NUM) && ((ev.key.keysym.sym >= SDLK_KP_1 && ev.key.keysym.sym <= SDLK_KP_0) - || ev.key.keysym.sym == SDLK_KP_DIVIDE + if (ev.key.keysym.sym == SDLK_KP_DIVIDE || ev.key.keysym.sym == SDLK_KP_MULTIPLY || ev.key.keysym.sym == SDLK_KP_MINUS - || ev.key.keysym.sym == SDLK_KP_PLUS - || ev.key.keysym.sym == SDLK_KP_PERIOD)) + || ev.key.keysym.sym == SDLK_KP_PLUS) + break; + if ((ev.key.keysym.mod & KMOD_NUM) && ((ev.key.keysym.sym >= SDLK_KP_1 && ev.key.keysym.sym <= SDLK_KP_0) || (ev.key.keysym.sym == SDLK_KP_PERIOD))) break; sdl_add_key_uc(sdl_get_char_code(ev.key.keysym.sym, ev.key.keysym.mod), &cvstat); } -- GitLab