- called = True;
- }
- if(!called) {
- if(key_buffering) {
- if(key_buffer_len == LENGTH(key_buffer)) {
- // buffer full, bail
- key_buffer_len = 0;
- key_buffering = False;
- } else {
- key_buffer[key_buffer_len].keycode = (KeyCode)ev->keycode;
- key_buffer[key_buffer_len].state = ev->state;
- key_buffer[key_buffer_len].type = KeyPress;
- key_buffer_len += 1;
- }
- } else {
- send_key_event(KeyPress, (KeyCode)ev->keycode, ev->state);
- }
- }
-}
-
-void
-keyrelease(XEvent *e) {
- XKeyEvent *ev;
- ev = &e->xkey;
- // fprintf(stderr, "key UP %i\n", ev->keycode);
- if(key_buffering) {
- if(key_buffer_len == LENGTH(key_buffer)) {
- // buffer full, bail
- key_buffer_len = 0;
- key_buffering = False;
- } else {
- key_buffer[key_buffer_len].keycode = (KeyCode)ev->keycode;
- key_buffer[key_buffer_len].state = ev->state;
- key_buffer[key_buffer_len].type = KeyRelease;
- key_buffer_len += 1;