From c001c164f1fb610bb3773f6e9b0e9312b59e4699 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 16 Jun 2016 13:59:35 -0400 Subject: [PATCH] Implemented uiMainSteps() on GTK+. --- unix/main.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/unix/main.c b/unix/main.c index bfd05448..59590886 100644 --- a/unix/main.c +++ b/unix/main.c @@ -34,6 +34,30 @@ void uiMain(void) gtk_main(); } +struct mainStepsData { + void (*f)(void *); + void *data; +}; + +static gboolean mainSteps(gpointer data) +{ + struct mainStepsData *d = (struct mainStepsData *) data; + + (*(d->f))(d->data); + // TODO call gtk_main_quit() here again? + return FALSE; +} + +void uiMainSteps(void (*f)(void *), void *data) +{ + struct mainStepsData d; + + d.f = f; + d.data = data; + gdk_threads_add_idle(mainSteps, &d); + gtk_main(); +} + int uiMainStep(int wait) { gboolean block;