From ae825ad58ddd436d3eb7518573a8f63713574938 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Fri, 7 Jun 2019 00:06:35 -0500 Subject: [PATCH] *drive-thru whale bends over and eats the Europapean lobster* --- examples/cluster.c | 10 ++++++++-- src/window.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/examples/cluster.c b/examples/cluster.c index e43b98e..ad4366d 100644 --- a/examples/cluster.c +++ b/examples/cluster.c @@ -388,6 +388,11 @@ int main(int argc, char **argv) { .tv_usec = 0 }; + struct timeval timeout = { + .tv_sec = 0, + .tv_usec = 250000 + }; + cairo_t *fg, *bg; if ((can_if = hexagram_can_if_open("vcan0")) == NULL) @@ -416,8 +421,8 @@ int main(int argc, char **argv) { * Present the background layer */ hexagram_window_refresh_bg(window); - hexagram_window_show(window); hexagram_window_swap_buffer(window); + hexagram_window_show(window); /* * Set up file descriptors to monitor @@ -438,6 +443,7 @@ int main(int argc, char **argv) { XNextEvent(display, &e); switch (e.type) { + case MapNotify: case Expose: hexagram_window_refresh_bg(window); hexagram_window_swap_buffer(window); @@ -455,7 +461,7 @@ int main(int argc, char **argv) { memcpy(&rready, &rfds, sizeof(rfds)); - if (select(fd2, &rready, NULL, NULL, NULL) < 0) { + if (select(fd2, &rready, NULL, NULL, &timeout) < 0) { break; } diff --git a/src/window.c b/src/window.c index 22b0875..5f4f333 100644 --- a/src/window.c +++ b/src/window.c @@ -176,7 +176,7 @@ int hexagram_window_display_fd(hexagram_window *window) { int hexagram_window_show(hexagram_window *window) { if (XSelectInput(window->display, window->win, - ExposureMask | ButtonPressMask | KeyPressMask) == 0) { + HEXAGRAM_WINDOW_EVENT_MASK) == 0) { goto error_x; }