From 24d5f1a6249b08a8b21854ecf001be7e07e5bf23 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 11 May 2017 14:20:33 +0200 Subject: Tweak/fix splash screen event-loop Prevent possible endless loop in Splash::display() and handle some related edge-cases and race conditions WRT expose_done and is_visible(). --- gtk2_ardour/splash.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour/splash.h') diff --git a/gtk2_ardour/splash.h b/gtk2_ardour/splash.h index d92c443cf0..109b68a8be 100644 --- a/gtk2_ardour/splash.h +++ b/gtk2_ardour/splash.h @@ -47,6 +47,7 @@ public: void on_realize (); bool on_map_event (GdkEventAny*); void message (const std::string& msg); + void hide (); private: static Splash* the_splash; @@ -58,7 +59,8 @@ private: void boot_message (std::string); PBD::ScopedConnection msg_connection; - bool expose_done; + sigc::connection idle_connection; + volatile bool expose_done; bool expose_is_the_one; bool idle_after_expose (); }; -- cgit v1.2.3