summaryrefslogtreecommitdiff
path: root/gtk2_ardour/gain_meter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r--gtk2_ardour/gain_meter.cc28
1 files changed, 19 insertions, 9 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 7dd7f88d7c..64fde6f6bf 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -110,8 +110,8 @@ GainMeterBase::GainMeterBase (Session* s,
level_meter = new LevelMeter(_session);
- gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::start_gain_touch));
- gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::end_gain_touch));
+ gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_press));
+ gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::gain_slider_button_release));
gain_slider->set_name ("GainFader");
gain_display.set_name ("MixerStripGainDisplay");
@@ -591,18 +591,28 @@ GainMeterBase::meter_point_clicked ()
}
}
-gint
-GainMeterBase::start_gain_touch (GdkEventButton*)
+bool
+GainMeterBase::gain_slider_button_press (GdkEventButton* ev)
{
- _amp->gain_control()->start_touch (_amp->session().transport_frame());
- return FALSE;
+ switch (ev->type) {
+ case GDK_BUTTON_PRESS:
+ _amp->gain_control()->start_touch (_amp->session().transport_frame());
+ break;
+ case GDK_2BUTTON_PRESS:
+ SliderDoubleClicked (); /* EMIT SIGNAL */
+ break;
+ default:
+ return false;
+ }
+
+ return true;
}
-gint
-GainMeterBase::end_gain_touch (GdkEventButton*)
+bool
+GainMeterBase::gain_slider_button_release (GdkEventButton* ev)
{
_amp->gain_control()->stop_touch (false, _amp->session().transport_frame());
- return FALSE;
+ return true;
}
gint