Fixed detection of current vt when not running as root.
authorSam Lantinga <slouken@libsdl.org>
Mon, 08 May 2006 05:17:10 +0000
changeset 1778 e28233f37f8c
parent 1777 402d5ff1cf88
child 1779 67fc81efcfc3
Fixed detection of current vt when not running as root.
src/video/fbcon/SDL_fbevents.c
--- a/src/video/fbcon/SDL_fbevents.c	Mon May 08 04:19:03 2006 +0000
+++ b/src/video/fbcon/SDL_fbevents.c	Mon May 08 05:17:10 2006 +0000
@@ -55,6 +55,7 @@
 #define GPM_NODE_FIFO	"/dev/gpmdata"
 #endif
 
+/*#define DEBUG_KEYBOARD*/
 /*#define DEBUG_MOUSE*/
 
 /* The translation tables from a console scancode to a SDL keysym */
@@ -281,8 +282,15 @@
 		}
  		if ( keyboard_fd < 0 ) {
 			/* Last resort, maybe our tty is a usable VT */
-			current_vt = 0;
+			struct vt_stat vtstate;
+
 			keyboard_fd = open("/dev/tty", O_RDWR);
+
+			if ( ioctl(keyboard_fd, VT_GETSTATE, &vtstate) == 0 ) {
+				current_vt = vtstate.v_active;
+			} else {
+				current_vt = 0;
+			}
  		}
 #ifdef DEBUG_KEYBOARD
 		fprintf(stderr, "Current VT: %d\n", current_vt);