the_splash = this;
expose_done = false;
+ expose_is_the_one = false;
ARDOUR::BootMessage.connect (msg_connection, invalidator (*this), boost::bind (&Splash::boot_message, this, _1), gui_context());
}
/* this must execute AFTER the GDK idle update mechanism
*/
- Glib::signal_idle().connect (sigc::mem_fun (this, &Splash::idle_after_expose),
- GDK_PRIORITY_REDRAW+2);
+ if (expose_is_the_one) {
+ Glib::signal_idle().connect (sigc::mem_fun (this, &Splash::idle_after_expose),
+ GDK_PRIORITY_REDRAW+2);
+ }
return true;
}
if (!was_mapped) {
expose_done = false;
- }
+ expose_is_the_one = false;
+ }
pop_front ();
present ();
while (!expose_done) {
gtk_main_iteration ();
}
+ gdk_display_flush (gdk_display_get_default());
}
}
while (!expose_done) {
gtk_main_iteration ();
}
+ gdk_display_flush (gdk_display_get_default());
}
}
+
+bool
+Splash::on_map_event (GdkEventAny* ev)
+{
+ expose_is_the_one = true;
+ return Window::on_map_event (ev);
+}