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
This commit is contained in:
parent
082461f108
commit
6dfce5dbfc
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user