diff --git a/gtk2_ardour/ardour_ui_session.cc b/gtk2_ardour/ardour_ui_session.cc index 8641e16aff..37ed5887df 100644 --- a/gtk2_ardour/ardour_ui_session.cc +++ b/gtk2_ardour/ardour_ui_session.cc @@ -476,7 +476,7 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s { list const u = new_session->missing_filesources (DataType::MIDI); if (!u.empty()) { - MissingFileSourceDialog d (_session, u, DataType::MIDI); + MissingFileSourceDialog d (_main_window, _session, u, DataType::MIDI); d.run (); } } @@ -484,7 +484,7 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s list const u = new_session->unknown_processors (); bool scan_now = false; if (!u.empty()) { - MissingPluginDialog d (_session, u, PluginManager::instance ().cache_valid ()); + MissingPluginDialog d (_main_window, _session, u, PluginManager::instance ().cache_valid ()); if (d.run () == RESPONSE_YES) { scan_now = true; } diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc index f66c15abc8..ce33c0730c 100644 --- a/gtk2_ardour/ardour_ui_startup.cc +++ b/gtk2_ardour/ardour_ui_startup.cc @@ -125,7 +125,7 @@ ARDOUR_UI::setup_profile () int ARDOUR_UI::missing_file (Session*s, std::string str, DataType type) { - MissingFileDialog dialog (s, str, type); + MissingFileDialog dialog (_main_window, s, str, type); dialog.show (); dialog.present (); diff --git a/gtk2_ardour/missing_file_dialog.cc b/gtk2_ardour/missing_file_dialog.cc index 5123958dab..2c9daffab8 100644 --- a/gtk2_ardour/missing_file_dialog.cc +++ b/gtk2_ardour/missing_file_dialog.cc @@ -36,8 +36,8 @@ using namespace std; using namespace ARDOUR; using namespace PBD; -MissingFileDialog::MissingFileDialog (Session* s, const std::string& path, DataType type) - : ArdourDialog (_("Missing File"), true, false) +MissingFileDialog::MissingFileDialog (Gtk::Window& parent, Session* s, const std::string& path, DataType type) + : ArdourDialog (parent, _("Missing File"), true, false) , filetype (type) , is_absolute_path (Glib::path_is_absolute (path)) , chooser (_("Select a folder to search"), FILE_CHOOSER_ACTION_SELECT_FOLDER) diff --git a/gtk2_ardour/missing_file_dialog.h b/gtk2_ardour/missing_file_dialog.h index 80db06b099..799ad0ebfd 100644 --- a/gtk2_ardour/missing_file_dialog.h +++ b/gtk2_ardour/missing_file_dialog.h @@ -36,7 +36,7 @@ namespace ARDOUR { class MissingFileDialog : public ArdourDialog { public: - MissingFileDialog (ARDOUR::Session*, const std::string& path, ARDOUR::DataType type); + MissingFileDialog (Gtk::Window&, ARDOUR::Session*, const std::string& path, ARDOUR::DataType type); int get_action(); diff --git a/gtk2_ardour/missing_filesource_dialog.cc b/gtk2_ardour/missing_filesource_dialog.cc index c6b29a12de..67b592a879 100644 --- a/gtk2_ardour/missing_filesource_dialog.cc +++ b/gtk2_ardour/missing_filesource_dialog.cc @@ -29,8 +29,8 @@ using namespace std; using namespace ARDOUR; using namespace PBD; -MissingFileSourceDialog::MissingFileSourceDialog (Session * s, list const& files, DataType dt) - : ArdourDialog (_("Missing Source Files"), true, false) +MissingFileSourceDialog::MissingFileSourceDialog (Gtk::Window& parent, Session* s, list const& files, DataType dt) + : ArdourDialog (parent, _("Missing Source Files"), true, false) { /* This dialog is always shown programatically. Center the window.*/ set_position (Gtk::WIN_POS_CENTER); diff --git a/gtk2_ardour/missing_filesource_dialog.h b/gtk2_ardour/missing_filesource_dialog.h index 782b27f6b3..f9493f4869 100644 --- a/gtk2_ardour/missing_filesource_dialog.h +++ b/gtk2_ardour/missing_filesource_dialog.h @@ -34,7 +34,7 @@ namespace ARDOUR { class MissingFileSourceDialog : public ArdourDialog { public: - MissingFileSourceDialog (ARDOUR::Session *, std::list const &, ARDOUR::DataType); + MissingFileSourceDialog (Gtk::Window&, ARDOUR::Session*, std::list const &, ARDOUR::DataType); }; #endif diff --git a/gtk2_ardour/missing_plugin_dialog.cc b/gtk2_ardour/missing_plugin_dialog.cc index 163259721f..ad47a1dda2 100644 --- a/gtk2_ardour/missing_plugin_dialog.cc +++ b/gtk2_ardour/missing_plugin_dialog.cc @@ -31,8 +31,8 @@ using namespace std; using namespace ARDOUR; using namespace PBD; -MissingPluginDialog::MissingPluginDialog (Session* s, list const & plugins, bool cache_valid) - : ArdourDialog (_("Missing Plugins"), true, false) +MissingPluginDialog::MissingPluginDialog (Gtk::Window& parent, Session* s, list const & plugins, bool cache_valid) + : ArdourDialog (parent, _("Missing Plugins"), true, false) { /* This dialog is always shown programatically. Center the window.*/ set_position (Gtk::WIN_POS_CENTER); diff --git a/gtk2_ardour/missing_plugin_dialog.h b/gtk2_ardour/missing_plugin_dialog.h index 570e8bfe24..31f1d4b5db 100644 --- a/gtk2_ardour/missing_plugin_dialog.h +++ b/gtk2_ardour/missing_plugin_dialog.h @@ -30,7 +30,7 @@ namespace ARDOUR { class MissingPluginDialog : public ArdourDialog { public: - MissingPluginDialog (ARDOUR::Session*, std::list const &, bool); + MissingPluginDialog (Gtk::Window&, ARDOUR::Session*, std::list const &, bool); }; #endif /* __gtk_ardour_missing_plugin_dialog_h__ */ diff --git a/gtk2_ardour/splash.cc b/gtk2_ardour/splash.cc index 581f95e3f1..81d6fefdd0 100644 --- a/gtk2_ardour/splash.cc +++ b/gtk2_ardour/splash.cc @@ -159,7 +159,9 @@ Splash::pop_back_for (Gtk::Window& win) hide (); } else if (is_mapped()) { get_window()->restack (win.get_window(), false); - win.set_transient_for (*this); + if (0 == win.get_transient_for ()) { + win.set_transient_for (*this); + } } #endif _window_stack.insert (&win);