diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index d57481b701..f0562ea716 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -361,7 +361,7 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width) } } } - if (meters[n].width != width || meters[n].length != len || color_changed) { + if (meters[n].width != width || meters[n].length != len || color_changed || meter_type != visible_meter_type) { delete meters[n].meter; meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical, len, c[0], c[1], c[2], c[3], c[4], @@ -383,6 +383,7 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width) } show(); color_changed = false; + visible_meter_type = meter_type; } void diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h index ead63aa50b..d3fd4f9bbd 100644 --- a/gtk2_ardour/level_meter.h +++ b/gtk2_ardour/level_meter.h @@ -101,6 +101,7 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr std::vector meters; float max_peak; ARDOUR::MeterType meter_type; + ARDOUR::MeterType visible_meter_type; PBD::ScopedConnection _configuration_connection; PBD::ScopedConnection _meter_type_connection;