diff options
-rw-r--r-- | gtk2_ardour/stereo_panner.cc | 15 | ||||
-rw-r--r-- | gtk2_ardour/stereo_panner.h | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc index 86cb794f7b..7ab526f8fa 100644 --- a/gtk2_ardour/stereo_panner.cc +++ b/gtk2_ardour/stereo_panner.cc @@ -67,6 +67,8 @@ StereoPanner::StereoPanner (boost::shared_ptr<PBD::Controllable> position, boost , detented (false) , drag_data_window (0) , drag_data_label (0) + , position_binder (position) + , width_binder (width) { if (!have_colors) { set_colors (); @@ -294,6 +296,19 @@ StereoPanner::on_button_press_event (GdkEventButton* ev) accumulated_delta = 0; detented = false; + /* Let the binding proxies get first crack at the press event + */ + + if (ev->y < 20) { + if (position_binder.button_press_handler (ev)) { + return true; + } + } else { + if (width_binder.button_press_handler (ev)) { + return true; + } + } + if (ev->button != 1) { return false; } diff --git a/gtk2_ardour/stereo_panner.h b/gtk2_ardour/stereo_panner.h index 9dad41ba71..39eebcba9f 100644 --- a/gtk2_ardour/stereo_panner.h +++ b/gtk2_ardour/stereo_panner.h @@ -25,6 +25,8 @@ #include <gtkmm/drawingarea.h> #include <boost/shared_ptr.hpp> +#include "gtkmm2ext/binding_proxy.h" + namespace PBD { class Controllable; } @@ -62,6 +64,9 @@ class StereoPanner : public Gtk::DrawingArea Gtk::Window* drag_data_window; Gtk::Label* drag_data_label; + BindingProxy position_binder; + BindingProxy width_binder; + void value_change (); void set_drag_data (); void set_tooltip (); |