From 11100f731cb9ec810328ec0d7e542c82cef80148 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 29 Jan 2008 21:59:59 +0000 Subject: add pause key, resort main loop --- stern.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/stern.c b/stern.c index b8a6b94..e99aebf 100644 --- a/stern.c +++ b/stern.c @@ -123,6 +123,7 @@ main(int argc, char **argv) int screen; int black, white; int r = 0; + int pause = 0; display = XOpenDisplay(argc == 2 ? argv[1] : NULL); screen = DefaultScreen(display); @@ -143,24 +144,30 @@ main(int argc, char **argv) XMapWindow(display, win); for (;;) { - if (XPending(display) == 0) { + if (XPending(display)) { + XNextEvent(display, &event); + switch (event.type) { + case KeyPress: + switch (XKeycodeToKeysym(display, + event.xkey.keycode, 0)) { + case XK_space: + pause = !pause; + break; + case XK_Escape: + case XK_q: + XCloseDisplay(display); + exit(0); + } + default: + break; + } + } + + if (!pause) { XClearWindow(display, win); if (r >= 360) r = 0; DrawObject(++r, world, NMELM(world)); - } else - XNextEvent(display, &event); - - switch (event.type) { - case KeyPress: - switch (XKeycodeToKeysym(display, - event.xkey.keycode, 0)) { - case XK_q: - XCloseDisplay(display); - exit(0); - } - default: - break; } usleep(Usleep); -- cgit v1.2.3