From a36ff983f5f5304449185cf26e2275c41370d036 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 8 Oct 2000 16:34:17 +0200 Subject: [PATCH] Fixed key release handling --- config.h | 7 ++++--- interface.c | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/config.h b/config.h index d0a10d44..56f36182 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.26 2000/10/08 16:07:49 kls Exp $ + * $Id: config.h 1.27 2000/10/08 16:33:48 kls Exp $ */ #ifndef __CONFIG_H @@ -41,8 +41,9 @@ enum eKeys { // "Up" and "Down" must be the first two keys! k_Flags = k_Repeat | k_Release, }; -#define ISNORMALKEY(k) ((k) != kNone && ((k) & k_Flags) == 0) -#define NORMALKEY(k) ((k) & ~k_Flags) +#define RAWKEY(k) ((k) & ~k_Flags) +#define ISRAWKEY(k) ((k) != kNone && ((k) & k_Flags) == 0) +#define NORMALKEY(k) ((k) & ~k_Repeat) struct tKey { eKeys type; diff --git a/interface.c b/interface.c index bb741fc2..5940195f 100644 --- a/interface.c +++ b/interface.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: interface.c 1.24 2000/10/08 12:15:36 kls Exp $ + * $Id: interface.c 1.25 2000/10/08 16:34:17 kls Exp $ */ #include "interface.h" @@ -94,10 +94,10 @@ eKeys cInterface::Wait(int Seconds, bool KeepChar) time_t timeout = time(NULL) + Seconds; for (;;) { Key = GetKey(); - if ((Key != kNone && (NORMALKEY(Key) != kOk || NORMALKEY(Key) == Key)) || time(NULL) > timeout) + if ((Key != kNone && (RAWKEY(Key) != kOk || RAWKEY(Key) == Key)) || time(NULL) > timeout) break; } - if (KeepChar && ISNORMALKEY(Key)) + if (KeepChar && ISRAWKEY(Key)) keyFromWait = Key; return Key; }