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