mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed key release handling
This commit is contained in:
		
							
								
								
									
										7
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user