summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2012-09-27 23:25:07 +0200
committerPeter Wu <lekensteyn@gmail.com>2012-09-27 23:25:07 +0200
commit6ba9b0deaed43304134c1b2f5c980ebbfff570e2 (patch)
tree7abc7ac94b074db195e9d4288bb4b7c535243d44
parent0ea7392729d9f7f12898b049117ad2fd61898598 (diff)
downloadc-files-6ba9b0deaed43304134c1b2f5c980ebbfff570e2.tar.gz
xcbviewfs: replace ESC by magic!
-rw-r--r--xcbviewfs.c12
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);