ui/gtk/toolkit.c

branch
newapi
changeset 280
e3565cf7c831
parent 275
132c7bcc6997
--- a/ui/gtk/toolkit.c	Sun Apr 07 13:24:26 2024 +0200
+++ b/ui/gtk/toolkit.c	Sun Apr 07 21:56:56 2024 +0200
@@ -38,6 +38,7 @@
 #include "../common/properties.h"
 #include "../common/menu.h"
 #include "../common/toolbar.h"
+#include "../common/threadpool.h"
 
 #include <cx/utils.h>
 #include <cx/string.h>
@@ -188,6 +189,23 @@
     return NULL;
 }
 
+static gboolean ui_idle_func(void *data) {
+    UiJob *job = data;
+    job->job_func(job->job_data);
+    free(job);
+    return FALSE;
+}
+
+void ui_call_mainthread(ui_threadfunc tf, void* td) {
+    UiJob *job = malloc(sizeof(UiJob));
+    job->job_func = tf;
+    job->job_data = td;
+    job->finish_callback = NULL;
+    job->finish_data = NULL;
+    job->obj = NULL;
+    g_idle_add(ui_idle_func, job);
+}
+
 void ui_job(UiObject *obj, ui_threadfunc tf, void *td, ui_callback f, void *fd) {
     UiJob *job = malloc(sizeof(UiJob));
     job->obj = obj;

mercurial