summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2008-01-29 21:59:59 +0000
committerDimitri Sokolyuk <demon@dim13.org>2008-01-29 21:59:59 +0000
commit11100f731cb9ec810328ec0d7e542c82cef80148 (patch)
treea58d053c566bbc1b28f642bd4a2613378300b13e
parent31332deaef855ad3d04aef2f263ce65ed529a5a8 (diff)
add pause key, resort main loop
-rw-r--r--stern.c35
1 files 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);