From b6f545e63c6d74a83ea34aa20869b3ff063d0c48 Mon Sep 17 00:00:00 2001 From: Lephe Date: Thu, 20 Feb 2020 21:09:39 +0100 Subject: [PATCH] getkey: gracefully take command after other keyboard primitives --- src/keysc/getkey.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/keysc/getkey.c b/src/keysc/getkey.c index 0997526..9d44aab 100644 --- a/src/keysc/getkey.c +++ b/src/keysc/getkey.c @@ -33,6 +33,15 @@ key_event_t getkey_opt(int opt, volatile int *timeout) /* Keyboard time when the key was pressed */ static int rep_time = 0; + /* Reset the state if the repeated key went up due to different + graphical primitives being used */ + if(rep_key && !keydown(rep_key)) + { + rep_key = 0; + rep_count = 0; + rep_time = 0; + } + while(1) switch((ev = pollevent()).type) { /* Key press: handle modifiers or return an event */