diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2000-10-08 16:34:17 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2000-10-08 16:34:17 +0200 |
commit | a36ff983f5f5304449185cf26e2275c41370d036 (patch) | |
tree | 17058373f8bd3955edb49f28a239b03ae854805f | |
parent | 212468e2e0c9809486040c019005b8da65214f81 (diff) | |
download | vdr-a36ff983f5f5304449185cf26e2275c41370d036.tar.gz vdr-a36ff983f5f5304449185cf26e2275c41370d036.tar.bz2 |
Fixed key release handling
-rw-r--r-- | config.h | 7 | ||||
-rw-r--r-- | interface.c | 6 |
2 files changed, 7 insertions, 6 deletions
@@ -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; } |