From 1a3b838dfff08630dd9d2a5f8738e4d8d3c416d6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 28 Feb 2014 16:40:01 -0500 Subject: 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. --- gtk2_ardour/splash.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gtk2_ardour/splash.cc') 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 += ""; + show (); + layout->set_markup (str); Glib::RefPtr 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()); } } -- cgit v1.2.3