diff options
Diffstat (limited to 'gtk2_ardour/ardour_ui_dialogs.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index b0ac528b79..2cfa27cbb2 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -27,6 +27,10 @@ #include "ardour/audioengine.h" #include "ardour/automation_watch.h" +#ifdef interface +#undef interface +#endif + #include "actions.h" #include "add_route_dialog.h" #include "add_video_dialog.h" @@ -68,7 +72,6 @@ ARDOUR_UI::set_session (Session *s) { SessionHandlePtr::set_session (s); - if (!_session) { WM::Manager::instance().set_session (s); /* Session option editor cannot exist across change-of-session */ @@ -198,9 +201,15 @@ ARDOUR_UI::set_session (Session *s) editor_meter_peak_display.hide(); } - if (_session - && _session->master_out() - && _session->master_out()->n_outputs().n(DataType::AUDIO) > 0) { + if (meter_box.get_parent()) { + transport_tearoff_hbox.remove (meter_box); + transport_tearoff_hbox.remove (editor_meter_peak_display); + } + + if (_session && + _session->master_out() && + _session->master_out()->n_outputs().n(DataType::AUDIO) > 0) { + editor_meter = new LevelMeterHBox(_session); editor_meter->set_meter (_session->master_out()->shared_peak_meter().get()); editor_meter->clear_meters(); @@ -228,7 +237,7 @@ ARDOUR_UI::set_session (Session *s) meter_box.show(); editor_meter_peak_display.show(); } - } + } } int |