summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/stereo_panner.cc15
-rw-r--r--gtk2_ardour/stereo_panner.h5
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 ();