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 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 +#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 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 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 (_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