diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 20 | ||||
-rw-r--r-- | gtk2_ardour/gain_meter.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/level_meter.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/level_meter.h | 1 |
4 files changed, 15 insertions, 21 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 845b07c90c..685fab5ed8 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -387,6 +387,7 @@ GainMeter::reset_peak_display () r->reset_max_peak_meters(); } + level_meter->clear_meters(); max_peak = -INFINITY; peak_display.set_label (_("-Inf")); peak_display.set_name ("MixerStripPeakDisplay"); @@ -403,25 +404,6 @@ GainMeter::reset_group_peak_display (RouteGroup* group) } } -gint -GainMeter::meter_button_release (GdkEventButton* ev, uint32_t which) -{ - switch (ev->button) { - case 1: - level_meter->clear_meters(); - max_peak = minus_infinity(); - peak_display.set_label (_("-inf")); - peak_display.set_name ("MixerStripPeakDisplay"); - break; - - case 3: - // popup_meter_menu (ev); - break; - }; - - return TRUE; -} - void GainMeter::popup_meter_menu (GdkEventButton *ev) { diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index f6c5f30854..239d165d14 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -142,7 +142,6 @@ class GainMeter : public Gtk::VBox void hide_all_meters (); gint meter_button_press (GdkEventButton*, uint32_t); - gint meter_button_release (GdkEventButton*, uint32_t); bool peak_button_release (GdkEventButton*); bool gain_key_press (GdkEventKey*); diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 166e1877b9..601f4c45dc 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -196,6 +196,7 @@ LevelMeter::setup_meters (int len, int initial_width) 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 (bind (mem_fun(*this, &LevelMeter::meter_button_release), n)); } pack_end (*meters[n].meter, false, false); @@ -204,13 +205,24 @@ LevelMeter::setup_meters (int len, int initial_width) } show(); color_changed = false; -} +} + +gint +LevelMeter::meter_button_release (GdkEventButton* ev, uint32_t which) +{ + if (ev->button == 1) { + clear_meters(); + } + return true; +} + void LevelMeter::clear_meters () { for (vector<MeterInfo>::iterator i = meters.begin(); i < meters.end(); i++) { (*i).meter->clear(); } + max_peak = minus_infinity(); } void LevelMeter::hide_meters () diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h index 60aeb18632..ce0aa125cb 100644 --- a/gtk2_ardour/level_meter.h +++ b/gtk2_ardour/level_meter.h @@ -95,6 +95,7 @@ class LevelMeter : public Gtk::HBox float max_peak; void hide_all_meters (); + gint meter_button_release (GdkEventButton*, uint32_t); void parameter_changed (const char*); |