summaryrefslogtreecommitdiff
path: root/tests/testlevelbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testlevelbar.c')
-rw-r--r--tests/testlevelbar.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tests/testlevelbar.c b/tests/testlevelbar.c
index 255bd1d523..9a94e7dbd2 100644
--- a/tests/testlevelbar.c
+++ b/tests/testlevelbar.c
@@ -64,6 +64,17 @@ toggle (GtkSwitch *sw, GParamSpec *pspec, GtkLevelBar *bar)
gtk_level_bar_set_mode (bar, GTK_LEVEL_BAR_MODE_CONTINUOUS);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
@@ -72,6 +83,7 @@ main (int argc, char *argv[])
GtkWidget *bar;
GtkWidget *box2;
GtkWidget *sw;
+ gboolean done = FALSE;
gtk_init ();
@@ -93,10 +105,11 @@ main (int argc, char *argv[])
gtk_widget_show (window);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
g_timeout_add (100, increase_level, bar);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}