diff --git a/gtk2_ardour/ardour_dropdown.cc b/gtk2_ardour/ardour_dropdown.cc index 6c527f2d27..be18af5056 100644 --- a/gtk2_ardour/ardour_dropdown.cc +++ b/gtk2_ardour/ardour_dropdown.cc @@ -70,9 +70,14 @@ ArdourDropdown::menu_size_request(Requisition *req) { bool ArdourDropdown::on_button_press_event (GdkEventButton* ev) { - if (ev->type == GDK_BUTTON_PRESS) { + if (binding_proxy.button_press_handler (ev)) { + return true; + } + + if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) { Gtkmm2ext::anchored_menu_popup(&_menu, this, get_text(), 1, ev->time); } + return true; } diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index 453be0a1ac..bcc91a673d 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -730,6 +730,8 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter& param, i->second))); } + control_ui->combo->set_controllable (mcontrol); + update_control_display(control_ui); } else { @@ -759,6 +761,7 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter& param, } else { control_ui->clickbox->set_printer (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::integer_printer), control_ui)); } + control_ui->clickbox->set_controllable (mcontrol); } else if (desc.toggled) { ArdourButton* but = dynamic_cast (control_ui->controller->widget()); assert(but);