1 /***************************************** 2 xjump version 2 3 4 key.c �������� 5 6 (C) Oct 28, 1997 ROYALPANDA 7 *****************************************/ 8 9 #include<stdio.h> 10 #include<X11/Xlib.h> 11 #include<X11/keysym.h> 12 13 #include"xjump.h" 14 15 static int Keycode_raw[3]; 16 static int Keycode_col[3]; 17 query_keycode(void)18void query_keycode( void ) 19 { 20 int i; 21 KeyCode k; 22 static KeySym sym[3] = {XK_space,XK_Left,XK_Right}; 23 24 for( i = 0 ; i < 3 ; i++ ){ 25 k = XKeysymToKeycode( Disp,sym[i] ); 26 Keycode_raw[i] = k >> 3; 27 Keycode_col[i] = 1 << (k & 7); 28 } 29 } 30 31 keymap(void)32void keymap( void ) 33 { 34 char key[32]; 35 int i; 36 37 XQueryKeymap( Disp,key ); 38 39 for( i = 0 ; i < 3 ; i++ ) 40 if( key[ Keycode_raw[i] ] & Keycode_col[i] ) 41 Key[i] = 1; 42 else 43 Key[i] = 0; 44 } 45 46 wait_keyup(void)47void wait_keyup( void ) 48 { 49 do{ 50 keymap(); 51 }while( Key[0] || Key[1] || Key[2] ); 52 } 53 54