File: key.c

package info (click to toggle)
xjump 2.7
  • links: PTS
  • area: main
  • in suites: potato
  • size: 128 kB
  • ctags: 129
  • sloc: ansic: 954; makefile: 64; sh: 8
file content (53 lines) | stat: -rw-r--r-- 836 bytes parent folder | download | duplicates (8)
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] );
}