summaryrefslogtreecommitdiff
path: root/gtk2_ardour/splash.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-05-11 14:20:33 +0200
committerRobin Gareus <robin@gareus.org>2017-05-11 14:20:56 +0200
commit24d5f1a6249b08a8b21854ecf001be7e07e5bf23 (patch)
tree0ea92155b52b4a2f93786e5b2064d11f63dab335 /gtk2_ardour/splash.h
parent26593d08ed34402c05b712f43ca3918d061a8ccd (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.h4
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 ();
};