diff options
Diffstat (limited to 'tests/testlevelbar.c')
-rw-r--r-- | tests/testlevelbar.c | 17 |
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; } |