#include #include #include "x11.h" #include "log.h" #include "draw.h" static gboolean mainloop_quit(gpointer data) { g_main_loop_quit(data); return G_SOURCE_CONTINUE; } static gboolean mainloop_do(gpointer data) { draw(data); return G_SOURCE_REMOVE; } int main(int argc, char **argv) { log_init(G_LOG_LEVEL_DEBUG); GMainLoop *mainloop = g_main_loop_new(NULL, FALSE); Window *win = window_create(); guint source_term = g_unix_signal_add(SIGTERM, mainloop_quit, mainloop); guint source_int = g_unix_signal_add(SIGINT, mainloop_quit, mainloop); guint id = g_timeout_add(100, mainloop_do, win); log_debug("Starting main loop"); g_main_loop_run(mainloop); log_debug("Cleaning main loop"); g_clear_pointer(&mainloop, g_main_loop_unref); g_source_remove(source_term); g_source_remove(source_int); window_destroy(win); return 0; } // vim: ts=4 sw=4 et