diff options
author | Peter Wu <lekensteyn@gmail.com> | 2012-09-27 23:25:07 +0200 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2012-09-27 23:25:07 +0200 |
commit | 6ba9b0deaed43304134c1b2f5c980ebbfff570e2 (patch) | |
tree | 7abc7ac94b074db195e9d4288bb4b7c535243d44 | |
parent | 0ea7392729d9f7f12898b049117ad2fd61898598 (diff) | |
download | c-files-6ba9b0deaed43304134c1b2f5c980ebbfff570e2.tar.gz |
xcbviewfs: replace ESC by magic!
-rw-r--r-- | xcbviewfs.c | 12 |
1 files 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); |