diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-05 23:58:27 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-12-05 23:58:27 +0000 |
commit | 6dfce5dbfc49d3c81b52585659147a884778e0be (patch) | |
tree | e1923e2f63b0dab17ecb279268b5f73612f1fab4 /gtk2_ardour/splash.cc | |
parent | 082461f108b0778327dec9d92704c15622ac3a86 (diff) |
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
Diffstat (limited to 'gtk2_ardour/splash.cc')
-rw-r--r-- | gtk2_ardour/splash.cc | 8 |
1 files changed, 6 insertions, 2 deletions
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<Gdk::GC> 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) { |