summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-02-09 20:06:58 -0500
committerMatthias Clasen <mclasen@redhat.com>2020-02-09 23:12:32 -0500
commitc78971165215ca749af68c3f6f16fb7eca08e142 (patch)
treea8f70cfce94bc3a2ae00c84f024cca4fef4cf1c9 /examples
parent7eb889c7aa697eeaa6fe95161788354987977f79 (diff)
downloadgtk+-c78971165215ca749af68c3f6f16fb7eca08e142.tar.gz
Stop using gtk_main_quit
Stop using gtk_main and gtk_main_quit in tests and examples. These APIs are on the way out.
Diffstat (limited to 'examples')
-rw-r--r--examples/builder.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/examples/builder.c b/examples/builder.c
index eb97a7fc90..261a099697 100644
--- a/examples/builder.c
+++ b/examples/builder.c
@@ -8,6 +8,16 @@ print_hello (GtkWidget *widget,
g_print ("Hello World\n");
}
+static void
+quit_cb (GtkWidget *widget, gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char *argv[])
@@ -15,6 +25,7 @@ main (int argc,
GtkBuilder *builder;
GObject *window;
GObject *button;
+ gboolean done = FALSE;
#ifdef GTK_SRCDIR
g_chdir (GTK_SRCDIR);
@@ -28,7 +39,7 @@ main (int argc,
/* Connect signal handlers to the constructed widgets. */
window = gtk_builder_get_object (builder, "window");
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
button = gtk_builder_get_object (builder, "button1");
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
@@ -37,9 +48,12 @@ main (int argc,
g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
button = gtk_builder_get_object (builder, "quit");
- g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (button, "clicked", G_CALLBACK (quit_cb), &done);
+
+ gtk_widget_show (GTK_WIDGET (window));
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}