From c1479866e3254dae4891f85e5d9f35fda76fd387 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Sat, 17 May 2025 00:38:04 +0200 Subject: Add ui_on_keypress function --- src/main/ui/x11/ui.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/main/ui/x11/ui.c') diff --git a/src/main/ui/x11/ui.c b/src/main/ui/x11/ui.c index 369eb7d..49ac978 100644 --- a/src/main/ui/x11/ui.c +++ b/src/main/ui/x11/ui.c @@ -22,11 +22,14 @@ #include #include #include +#include +#include #include "../../util.h" static Display *display; static Window window; static GLXContext gl_context; +static int close_window = 0; void cleanup(void); @@ -117,17 +120,23 @@ ui_on_resize(XEvent event) glViewport(0, 0, event.xconfigure.width, event.xconfigure.height); } +static void +ui_on_keypress(XEvent event) +{ + if (event.type != KeyPress) return; + close_window = 1; +} + void ui_loop(void (*draw_frame)()) { XEvent event; - while (1) { + while (!close_window) { XNextEvent(display, &event); ui_on_expose(event, draw_frame); ui_on_resize(event); - if (event.type == KeyPress) { - break; - } + ui_on_keypress(event); + } cleanup(); -- cgit v1.2.3