From: Paul Davis Date: Tue, 12 Jul 2016 14:27:19 +0000 (-0400) Subject: do not show windows derived from ArdourDialog at startup. X-Git-Tag: 5.0-pre1~168 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=53274c5baef194e14850757ab623c40d8217ebd7 do not show windows derived from ArdourDialog at startup. See code comment for more details --- diff --git a/gtk2_ardour/window_manager.cc b/gtk2_ardour/window_manager.cc index 24ed57da6d..73260b1f56 100644 --- a/gtk2_ardour/window_manager.cc +++ b/gtk2_ardour/window_manager.cc @@ -144,12 +144,27 @@ Manager::show_visible() const { for (Windows::const_iterator i = _windows.begin(); i != _windows.end(); ++i) { if ((*i)->visible()) { - if (! (*i)->get (true)) { + Gtk::Window* win = (*i)->get (true); + if (!win) { /* the window may be a plugin GUI for a plugin which * is disabled or longer present. */ continue; } + if (dynamic_cast (win)) { + /* do not show dialogs at startup. Most + * dialogs require some signal connection work + * because we are trying to avoid recursive + * event loops (connecting instead to + * ::signal_response(). This means we need to + * destroy the window as well, so that the code + * which checks if it should be created will + * find that it is missing and will create it + * and connect to any necessary signals. + */ + (*i)->drop_window (); + continue; + } (*i)->show_all (); (*i)->present (); }