summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_ui.cc3
-rw-r--r--gtk2_ardour/meter_strip.cc8
-rw-r--r--gtk2_ardour/mixer_strip.cc5
3 files changed, 7 insertions, 9 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index dce3fbfac8..6e8ca92d6c 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -5438,7 +5438,7 @@ ARDOUR_UI::popup_editor_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
- _suspend_editor_meter_callbacks = true;
+ PBD::Unwinder<bool> uw (_suspend_editor_meter_callbacks, true);
add_editor_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
add_editor_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterPeak0dB), MeterPeak0dB);
add_editor_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
@@ -5452,7 +5452,6 @@ ARDOUR_UI::popup_editor_meter_menu (GdkEventButton* ev)
add_editor_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterVU), MeterVU);
m->popup (ev->button, ev->time);
- _suspend_editor_meter_callbacks = false;
}
bool
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index 094d5170db..e219a70d1c 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -21,6 +21,8 @@
#include <sigc++/bind.h>
+#include "pbd/unwind.h"
+
#include "ardour/logmeter.h"
#include "ardour/session.h"
#include "ardour/route.h"
@@ -840,7 +842,7 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
- _suspend_menu_callbacks = true;
+ PBD::Unwinder<bool> uw (_suspend_menu_callbacks, true);
add_level_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
add_level_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterPeak0dB), MeterPeak0dB);
add_level_meter_type_item (items, group, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
@@ -865,7 +867,6 @@ MeterStrip::popup_level_meter_menu (GdkEventButton* ev)
sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
- _suspend_menu_callbacks = false;
}
bool
@@ -892,7 +893,7 @@ MeterStrip::popup_name_label_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
- _suspend_menu_callbacks = true;
+ PBD::Unwinder<bool> uw (_suspend_menu_callbacks, true);
add_label_height_item (items, group, _("Variable height"), 0);
add_label_height_item (items, group, _("Short"), 1);
add_label_height_item (items, group, _("Tall"), 2);
@@ -900,7 +901,6 @@ MeterStrip::popup_name_label_menu (GdkEventButton* ev)
add_label_height_item (items, group, _("Venti"), 4);
m->popup (ev->button, ev->time);
- _suspend_menu_callbacks = false;
}
void
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 68e4ab8e5c..736e757675 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -28,6 +28,7 @@
#include "pbd/enumwriter.h"
#include "pbd/replace_all.h"
#include "pbd/stacktrace.h"
+#include "pbd/unwind.h"
#include "ardour/amp.h"
#include "ardour/audio_track.h"
@@ -2524,7 +2525,7 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
RadioMenuItem::Group group;
- _suspend_menu_callbacks = true;
+ PBD::Unwinder<bool> (_suspend_menu_callbacks, true);
add_level_meter_item_point (items, group, _("Input"), MeterInput);
add_level_meter_item_point (items, group, _("Pre Fader"), MeterPreFader);
add_level_meter_item_point (items, group, _("Post Fader"), MeterPostFader);
@@ -2533,7 +2534,6 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
if (gpm.meter_channels().n_audio() == 0) {
m->popup (ev->button, ev->time);
- _suspend_menu_callbacks = false;
return;
}
@@ -2580,7 +2580,6 @@ MixerStrip::popup_level_meter_menu (GdkEventButton* ev)
sigc::bind (SetMeterTypeMulti, _strip_type, _route->route_group(), cmt)));
m->popup (ev->button, ev->time);
- _suspend_menu_callbacks = false;
}
void