diff options
author | Robin Gareus <robin@gareus.org> | 2017-05-11 14:20:33 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-05-11 14:20:56 +0200 |
commit | 24d5f1a6249b08a8b21854ecf001be7e07e5bf23 (patch) | |
tree | 0ea92155b52b4a2f93786e5b2064d11f63dab335 /gtk2_ardour/splash.h | |
parent | 26593d08ed34402c05b712f43ca3918d061a8ccd (diff) |
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().
Diffstat (limited to 'gtk2_ardour/splash.h')
-rw-r--r-- | gtk2_ardour/splash.h | 4 |
1 files changed, 3 insertions, 1 deletions
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 (); }; |