diff --git a/gtk2_ardour/master_bus_ui.cc b/gtk2_ardour/master_bus_ui.cc index a3ccfe9304..f17ec3e96b 100644 --- a/gtk2_ardour/master_bus_ui.cc +++ b/gtk2_ardour/master_bus_ui.cc @@ -33,6 +33,7 @@ #include "pbd/whitespace.h" #include "pbd/memento_command.h" #include "pbd/enumwriter.h" +#include "pbd/unwind.h" #include "pbd/stateful_diff_command.h" #include @@ -108,6 +109,7 @@ MasterBusUI::MasterBusUI (Session* sess, PublicEditor& ed) , _master_bus_multi_out_mode_icon (get_image("master_bus_multi_out_mode_icon")) , _master_event_box (WavesUI::root () ) , _selected(false) + , _ignore_mute_upadte(false) , _editor(ed) { set_attributes (*this, *xml_tree ()->root (), XMLNodeMap ()); @@ -433,6 +435,8 @@ void MasterBusUI::on_master_mute_button (WavesButton*) if( !session ) return; + PBD::Unwinder uw (_ignore_mute_upadte, true); + if (Config->get_output_auto_connect() & AutoConnectPhysical) // Multi out { boost::shared_ptr tracks = session->get_tracks(); @@ -454,6 +458,9 @@ void MasterBusUI::route_mute_state_changed (void* ) if( !session ) return; + if( _ignore_mute_upadte ) + return; + if (Config->get_output_auto_connect() & AutoConnectPhysical) // Multi out { _master_mute_button.set_active( check_all_tracks_are_muted() ); diff --git a/gtk2_ardour/master_bus_ui.h b/gtk2_ardour/master_bus_ui.h index ea9aa2856f..c93bf5c3b1 100644 --- a/gtk2_ardour/master_bus_ui.h +++ b/gtk2_ardour/master_bus_ui.h @@ -111,6 +111,7 @@ private: PublicEditor& _editor; bool _selected; + bool _ignore_mute_upadte; }; #endif /* __tracks_master_bus_ui_h__ */