+
+static void
+wait_for_splash (GApplication *app, GtkWindow *x)
+{
+ if (wsplash)
+ {
+ gtk_window_set_transient_for (GTK_WINDOW (wsplash), x);
+ gtk_application_add_window (GTK_APPLICATION (app), GTK_WINDOW (wsplash));
+ gtk_window_set_keep_above (GTK_WINDOW (wsplash), TRUE);
+ gtk_window_present (GTK_WINDOW (wsplash));
+
+ /* Remove the splash screen after SPLASH_DURATION milliseconds */
+ gint64 elapsed_time = (g_get_monotonic_time () - start_time) / 1000;
+ if (SPLASH_DURATION - elapsed_time <= 0)
+ destroy_splash (wsplash);
+ else
+ g_timeout_add (SPLASH_DURATION - elapsed_time, destroy_splash, wsplash);
+ }
+}
+
+