diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-28 16:40:01 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-28 16:40:01 -0500 |
commit | 1a3b838dfff08630dd9d2a5f8738e4d8d3c416d6 (patch) | |
tree | 5df5e90533bcb3e4f416a71c08e5b845a24259bd /gtk2_ardour/splash.cc | |
parent | 2067d52f1097b541c22988fcb07c63f343b398a9 (diff) |
fix problem with splash window on OS X: requesting a redraw of a hidden window doesn't result in an expose event being delivered.
The splash window was being hidden by default on OS X as soon as someone called Splash::pop_back_for(), because of window layering issues on OS X. But then
the next call to ::message() would not return because a recursive event loop was started that waits for the expose event, which never comes. So, (a) show the
window when ::message() is called AND (b) remove the recursive event loop because (b.1) we don't seem to need it (b.2) recursive event loops are generally evil.
Diffstat (limited to 'gtk2_ardour/splash.cc')
-rw-r--r-- | gtk2_ardour/splash.cc | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gtk2_ardour/splash.cc b/gtk2_ardour/splash.cc index ee0566a910..66412d4881 100644 --- a/gtk2_ardour/splash.cc +++ b/gtk2_ardour/splash.cc @@ -224,6 +224,8 @@ Splash::message (const string& msg) str += Glib::Markup::escape_text (msg); str += "</b>"; + show (); + layout->set_markup (str); Glib::RefPtr<Gdk::Window> win = darea.get_window(); @@ -235,11 +237,6 @@ Splash::message (const string& msg) } else { darea.queue_draw (); } - - while (!expose_done) { - if(gtk_main_iteration ()) return; // quit was called - } - gdk_display_flush (gdk_display_get_default()); } } |