From 520b78b84180f81a53dc3646d3f4ef50cf7ed54e Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Sun, 27 Sep 2015 13:15:32 +1000 Subject: Add parent window argument to ARDOUR_UI::check_audioengine Ensures relevant placement of the dialog when presented --- gtk2_ardour/ardour_ui.cc | 13 +++++-------- gtk2_ardour/ardour_ui.h | 2 +- gtk2_ardour/engine_dialog.cc | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 2a4a8c530d..9ec13e4a7c 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1662,10 +1662,10 @@ ARDOUR_UI::open_recent_session () } bool -ARDOUR_UI::check_audioengine () +ARDOUR_UI::check_audioengine (Gtk::Window& parent) { if (!AudioEngine::instance()->connected()) { - MessageDialog msg (string_compose ( + MessageDialog msg (parent, string_compose ( _("%1 is not connected to any audio backend.\n" "You cannot open or close sessions in this condition"), PROGRAM_NAME)); @@ -1679,9 +1679,8 @@ ARDOUR_UI::check_audioengine () void ARDOUR_UI::open_session () { - if (!check_audioengine()) { + if (!check_audioengine(*editor)) { return; - } /* ardour sessions are folders */ @@ -1690,8 +1689,6 @@ ARDOUR_UI::open_session () open_session_selector.add_button (Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT); open_session_selector.set_default_response(Gtk::RESPONSE_ACCEPT); - - if (_session) { string session_parent_dir = Glib::path_get_dirname(_session->path()); open_session_selector.set_current_folder(session_parent_dir); @@ -2680,7 +2677,7 @@ ARDOUR_UI::save_template () ArdourPrompter prompter (true); string name; - if (!check_audioengine()) { + if (!check_audioengine(*editor)) { return; } @@ -3047,7 +3044,7 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri void ARDOUR_UI::close_session() { - if (!check_audioengine()) { + if (!check_audioengine(*editor)) { return; } diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 1c1ee78bfb..4f572157b1 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -294,7 +294,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void show_ui_prefs (); - bool check_audioengine(); + bool check_audioengine(Gtk::Window&); void update_tearoff_visibility (); diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index fe8a594193..654f63a8cd 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -444,7 +444,7 @@ EngineControl::on_response (int response_id) } case RESPONSE_CANCEL: if (ARDOUR_UI::instance() && ARDOUR_UI::instance()->session_loaded) { - ARDOUR_UI::instance()->check_audioengine (); + ARDOUR_UI::instance()->check_audioengine (*this); } // fall through default: -- cgit v1.2.3