Allow to bind generic plugin-ui dropdown + clickboxes
authorRobin Gareus <robin@gareus.org>
Sun, 2 Jul 2017 20:53:28 +0000 (22:53 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 2 Jul 2017 20:53:28 +0000 (22:53 +0200)
gtk2_ardour/ardour_dropdown.cc
gtk2_ardour/generic_pluginui.cc

index 6c527f2d27b356721bbc7cd71ab5c51fa24ba5db..be18af5056001fd51c0c5bc6828636fc3b2781b9 100644 (file)
@@ -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;
 }
 
index 453be0a1ac5b8166d3f7663d97b286bb712a315d..bcc91a673d6a8af43febb1b510f55f496fc784aa 100644 (file)
@@ -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);