summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-11-23 16:48:26 +0100
committerRobin Gareus <robin@gareus.org>2013-11-23 16:48:26 +0100
commitaf9ac37b6007a72a07a5027a4c98a563f76d3640 (patch)
tree445c85f58c457cba92d4ba34fabea9ecfc19f3c1 /gtk2_ardour
parent5cbd4ce759474944ef138a47d3a889ac9902ae03 (diff)
fix for toolbar master-meter w/o master bus and/or detached toolbar
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc15
-rw-r--r--gtk2_ardour/ardour_ui_options.cc8
2 files changed, 16 insertions, 7 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index 2ad4cd3c92..0dd61778ae 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -193,7 +193,9 @@ ARDOUR_UI::set_session (Session *s)
editor_meter_peak_display.hide();
}
- if (_session && _session->master_out()) {
+ 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();
@@ -216,12 +218,17 @@ ARDOUR_UI::set_session (Session *s)
editor_meter_peak_display.signal_button_release_event().connect (sigc::mem_fun(*this, &ARDOUR_UI::editor_meter_peak_button_release), false);
if (Config->get_show_editor_meter()) {
+ transport_tearoff_hbox.pack_start (meter_box, false, false);
+ transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
meter_box.show();
editor_meter_peak_display.show();
- } else {
- meter_box.hide();
- editor_meter_peak_display.hide();
+ } else if (meter_box.get_parent()) {
+ transport_tearoff_hbox.remove (meter_box);
+ transport_tearoff_hbox.remove (editor_meter_peak_display);
}
+ } else if (meter_box.get_parent()) {
+ transport_tearoff_hbox.remove (meter_box);
+ transport_tearoff_hbox.remove (editor_meter_peak_display);
}
}
diff --git a/gtk2_ardour/ardour_ui_options.cc b/gtk2_ardour/ardour_ui_options.cc
index 0e28900450..c531f006e2 100644
--- a/gtk2_ardour/ardour_ui_options.cc
+++ b/gtk2_ardour/ardour_ui_options.cc
@@ -402,11 +402,13 @@ ARDOUR_UI::parameter_changed (std::string p)
} else if (p == "show-editor-meter") {
bool show = Config->get_show_editor_meter();
if (editor_meter && show) {
+ transport_tearoff_hbox.pack_start (meter_box, false, false);
+ transport_tearoff_hbox.pack_start (editor_meter_peak_display, false, false);
meter_box.show();
editor_meter_peak_display.show();
- } else if (editor_meter && !show) {
- meter_box.hide();
- editor_meter_peak_display.hide();
+ } else if (editor_meter && !show && meter_box.get_parent()) {
+ transport_tearoff_hbox.remove (meter_box);
+ transport_tearoff_hbox.remove (editor_meter_peak_display);
}
}
}