13
0

triggerbox: workaround for CheckMenuItems that fire the action when we set the display state

This commit is contained in:
Ben Loftis 2021-12-17 12:41:32 -06:00
parent 243ddae928
commit f9192decbf
2 changed files with 8 additions and 0 deletions

View File

@ -183,6 +183,7 @@ PassThru::render (Rect const& area, Cairo::RefPtr<Cairo::Context> 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<Gtk::CheckMenuItem*> (&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 ());
}

View File

@ -97,6 +97,7 @@ private:
PassThru* _passthru;
Gtk::Menu* _context_menu;
bool _ignore_menu_action;
double _poly_size;
double _poly_margin;