summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/gain_meter.cc24
-rw-r--r--gtk2_ardour/gain_meter.h4
2 files changed, 10 insertions, 18 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 3a9f6692e1..8098131fe6 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -89,8 +89,9 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
meter_metric_area.signal_button_press_event().connect (sigc::mem_fun (*this, &GainMeterBase::level_meter_button_press));
meter_metric_area.add_events (Gdk::BUTTON_PRESS_MASK);
- gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_press), false);
- gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_release), false);
+ gain_slider->set_tweaks (PixFader::Tweaks(PixFader::NoButtonForward | PixFader::NoVerticalScroll));
+ gain_slider->StartGesture.connect (sigc::mem_fun (*this, &GainMeter::amp_start_touch));
+ gain_slider->StopGesture.connect (sigc::mem_fun (*this, &GainMeter::amp_stop_touch));
gain_slider->set_name ("GainFader");
gain_display.set_name ("MixerStripGainDisplay");
@@ -690,25 +691,16 @@ GainMeterBase::meter_point_clicked ()
}
}
-bool
-GainMeterBase::gain_slider_button_press (GdkEventButton* ev)
+void
+GainMeterBase::amp_start_touch ()
{
- switch (ev->type) {
- case GDK_BUTTON_PRESS:
- _amp->gain_control()->start_touch (_amp->session().transport_frame());
- break;
- default:
- return false;
- }
-
- return false;
+ _amp->gain_control()->start_touch (_amp->session().transport_frame());
}
-bool
-GainMeterBase::gain_slider_button_release (GdkEventButton*)
+void
+GainMeterBase::amp_stop_touch ()
{
_amp->gain_control()->stop_touch (false, _amp->session().transport_frame());
- return false;
}
gint
diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h
index 38b89bb8a5..4c4b0735d3 100644
--- a/gtk2_ardour/gain_meter.h
+++ b/gtk2_ardour/gain_meter.h
@@ -168,8 +168,8 @@ class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr
Gtk::Menu* meter_menu;
void popup_meter_menu (GdkEventButton*);
- bool gain_slider_button_press (GdkEventButton *);
- bool gain_slider_button_release (GdkEventButton *);
+ void amp_stop_touch ();
+ void amp_start_touch ();
void set_route_group_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);
void set_meter_point (ARDOUR::Route&, ARDOUR::MeterPoint);