summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-02 22:53:28 +0200
committerRobin Gareus <robin@gareus.org>2017-07-02 22:53:28 +0200
commitef8756a83ae98c527afe63779bcb1a60f4e8c131 (patch)
tree26b23097aa65a166d75b6d1ad471f8a7fcf334cc /gtk2_ardour
parent3a423839755ad0889bafea501c61ac8ab98f572e (diff)
Allow to bind generic plugin-ui dropdown + clickboxes
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_dropdown.cc7
-rw-r--r--gtk2_ardour/generic_pluginui.cc3
2 files changed, 9 insertions, 1 deletions
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<ArdourButton*> (control_ui->controller->widget());
assert(but);