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)18 void 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)32 void 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)47 void wait_keyup( void )
48 {
49   do{
50     keymap();
51   }while( Key[0] || Key[1] || Key[2] );
52 }
53 
54