diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-02-09 20:06:58 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-02-09 23:12:32 -0500 |
commit | c78971165215ca749af68c3f6f16fb7eca08e142 (patch) | |
tree | a8f70cfce94bc3a2ae00c84f024cca4fef4cf1c9 /examples | |
parent | 7eb889c7aa697eeaa6fe95161788354987977f79 (diff) | |
download | gtk+-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.c | 20 |
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; } |