diff options
Diffstat (limited to 'gtk2_ardour/level_meter.cc')
-rw-r--r-- | gtk2_ardour/level_meter.cc | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 4a65864050..b073d54a7a 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -201,8 +201,9 @@ LevelMeter::setup_meters (int len, int initial_width) meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical, len, b, m, t, c); meters[n].width = width; meters[n].length = len; - meters[n].meter->add_events (Gdk::BUTTON_RELEASE_MASK); - meters[n].meter->signal_button_release_event().connect (sigc::bind (sigc::mem_fun(*this, &LevelMeter::meter_button_release), n)); + meters[n].meter->add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK); + meters[n].meter->signal_button_press_event().connect (sigc::mem_fun (*this, &LevelMeter::meter_button_press)); + meters[n].meter->signal_button_release_event().connect (sigc::mem_fun (*this, &LevelMeter::meter_button_release)); } pack_end (*meters[n].meter, false, false); @@ -213,12 +214,19 @@ LevelMeter::setup_meters (int len, int initial_width) color_changed = false; } -gint -LevelMeter::meter_button_release (GdkEventButton* ev, uint32_t /*which*/) +bool +LevelMeter::meter_button_press (GdkEventButton* ev) +{ + return ButtonPress (ev); /* EMIT SIGNAL */ +} + +bool +LevelMeter::meter_button_release (GdkEventButton* ev) { if (ev->button == 1) { - clear_meters(); + clear_meters (); } + return true; } |