From 6ba9b0deaed43304134c1b2f5c980ebbfff570e2 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 27 Sep 2012 23:25:07 +0200 Subject: xcbviewfs: replace ESC by magic! --- xcbviewfs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xcbviewfs.c b/xcbviewfs.c index 1e5933a..7f1bfe0 100644 --- a/xcbviewfs.c +++ b/xcbviewfs.c @@ -53,6 +53,7 @@ int main(int argc, char **argv) { int fullscreen = 0; int draw_picture = 1; //grab_kbd = !(fullscreen = grab_pointer = hide_cursor = 0 ); + xcb_keycode_t magic_keys[] = {40, 31, 26}; /* DIE */ if (argc < 2) { fprintf(stderr, "Usage: %s filename\n", *argv); @@ -181,6 +182,9 @@ int main(int argc, char **argv) { xcb_image_destroy(img); } + int magic_level = 0; + size_t magic_len = sizeof(magic_keys)/sizeof(*magic_keys); + xcb_generic_event_t *e; int running = 1; while (running && (e = xcb_wait_for_event(c))) { @@ -198,8 +202,12 @@ int main(int argc, char **argv) { case XCB_KEY_PRESS: ; xcb_button_press_event_t *press = (xcb_button_press_event_t *)e; xcb_keycode_t key = press->detail; - if (key == 9 /* ESC */) - running = 0; + if (magic_keys[magic_level] == key) { + if (++magic_level >= magic_len) + running = 0; + } else { + magic_level = 0; + } break; } free(e); -- cgit v1.2.1