summaryrefslogtreecommitdiff
path: root/gtk2_ardour/splash.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-02-28 16:40:01 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-02-28 16:40:01 -0500
commit1a3b838dfff08630dd9d2a5f8738e4d8d3c416d6 (patch)
tree5df5e90533bcb3e4f416a71c08e5b845a24259bd /gtk2_ardour/splash.cc
parent2067d52f1097b541c22988fcb07c63f343b398a9 (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.cc7
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());
}
}