From 6dfce5dbfc49d3c81b52585659147a884778e0be Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 5 Dec 2012 23:58:27 +0000 Subject: tweak to make it more likely (hopefully 100% certain) that the splash window is fully drawn before we return control to the main event loop. do this by making sure that the idle handler that says "the expose happened" executes AFTER GDK's internal idle-update mechanism, not before it git-svn-id: svn://localhost/ardour2/branches/3.0@13605 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/splash.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour/splash.cc') diff --git a/gtk2_ardour/splash.cc b/gtk2_ardour/splash.cc index 9f558be233..1a285fc55d 100644 --- a/gtk2_ardour/splash.cc +++ b/gtk2_ardour/splash.cc @@ -147,8 +147,12 @@ Splash::expose (GdkEventExpose* ev) Glib::RefPtr white = style->get_white_gc(); window->draw_layout (white, 10, pixbuf->get_height() - 30, layout); + + /* this must execute AFTER the GDK idle update mechanism + */ - Glib::signal_idle().connect (sigc::mem_fun (this, &Splash::idle_after_expose)); + Glib::signal_idle().connect (sigc::mem_fun (this, &Splash::idle_after_expose), + GDK_PRIORITY_REDRAW+2); return true; } @@ -197,7 +201,7 @@ Splash::message (const string& msg) if (win) { expose_done = false; - + win->invalidate_rect (Gdk::Rectangle (0, darea.get_height() - 30, darea.get_width(), 30), true); while (!expose_done) { -- cgit v1.2.3