summaryrefslogtreecommitdiff
path: root/new/main_unix.c
diff options
context:
space:
mode:
Diffstat (limited to 'new/main_unix.c')
-rw-r--r--new/main_unix.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/new/main_unix.c b/new/main_unix.c
index 90374c7..10af782 100644
--- a/new/main_unix.c
+++ b/new/main_unix.c
@@ -8,7 +8,16 @@ void uiMain(void)
gtk_main();
}
-void uiQuit(void)
+// gtk_main_quit() may run immediately, or it may wait for other pending events; "it depends" (thanks mclasen in irc.gimp.net/#gtk+)
+// PostQuitMessage() on Windows always waits, so we must do so too
+// we'll do it by using an idle callback
+static gboolean quit(gpointer data)
{
gtk_main_quit();
+ return FALSE;
+}
+
+void uiQuit(void)
+{
+ gdk_threads_add_idle(quit, NULL);
}