diff --git a/gtk2_ardour/trigger_master.cc b/gtk2_ardour/trigger_master.cc index 2815355548..45f2e73662 100644 --- a/gtk2_ardour/trigger_master.cc +++ b/gtk2_ardour/trigger_master.cc @@ -183,6 +183,7 @@ PassThru::render (Rect const& area, Cairo::RefPtr context) const TriggerMaster::TriggerMaster (Item* parent) : ArdourCanvas::Rectangle (parent) , _context_menu (0) + , _ignore_menu_action (false) { set_layout_sensitive (true); // why??? @@ -393,7 +394,9 @@ TriggerMaster::context_menu () items.push_back (CheckMenuElem (_("Toggle Monitor Thru"), sigc::mem_fun (*this, &TriggerMaster::toggle_thru))); if (_triggerbox->pass_thru ()) { + _ignore_menu_action = true; dynamic_cast (&items.back ())->set_active (true); + _ignore_menu_action = false; } items.push_back (MenuElem (_("Enable/Disable..."), sigc::mem_fun (*this, &TriggerMaster::maybe_update))); // TODO @@ -408,6 +411,10 @@ TriggerMaster::context_menu () void TriggerMaster::toggle_thru () { + if (_ignore_menu_action) { + return; + } + _triggerbox->set_pass_thru (!_triggerbox->pass_thru ()); } diff --git a/gtk2_ardour/trigger_master.h b/gtk2_ardour/trigger_master.h index dab2a59f52..d1f66134fe 100644 --- a/gtk2_ardour/trigger_master.h +++ b/gtk2_ardour/trigger_master.h @@ -97,6 +97,7 @@ private: PassThru* _passthru; Gtk::Menu* _context_menu; + bool _ignore_menu_action; double _poly_size; double _poly_margin;