Revert "don't unpack and repack meters unnecessarily during LevelMeterBase::setup_meters()"
This reverts commit d00e035fe0
.
..which introduced a bug.
Meter count and type may change when switching the meter point or simply
when selecting a different track in the editor-mixer. Additional meters
were not unpacked and remained on canvas.
Ideally we'd just remove the excess meters or meters where the type
changed, but that's far more complex than just repacking them all.
This commit is contained in:
parent
2132b917cc
commit
7235ece898
|
@ -234,6 +234,8 @@ LevelMeterBase::hide_all_meters ()
|
|||
void
|
||||
LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
|
||||
{
|
||||
hide_all_meters ();
|
||||
|
||||
if (!_meter) {
|
||||
return; /* do it later or never */
|
||||
}
|
||||
|
@ -393,13 +395,8 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
|
|||
}
|
||||
if (meters[n].width != width || meters[n].length != len || color_changed || meter_type != visible_meter_type) {
|
||||
bool hl = meters[n].meter ? meters[n].meter->get_highlight() : false;
|
||||
|
||||
if (meters[n].meter && meters[n].meter->get_parent()) {
|
||||
mtr_remove (*meters[n].meter);
|
||||
meters[n].packed = false;
|
||||
delete meters[n].meter;
|
||||
}
|
||||
|
||||
meters[n].packed = false;
|
||||
delete meters[n].meter;
|
||||
meters[n].meter = new FastMeter ((uint32_t) floor (ARDOUR_UI::config()->get_meter_hold()), width, _meter_orientation, len,
|
||||
c[0], c[1], c[2], c[3], c[4],
|
||||
c[5], c[6], c[7], c[8], c[9],
|
||||
|
@ -413,13 +410,14 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
|
|||
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, &LevelMeterBase::meter_button_press), false);
|
||||
meters[n].meter->signal_button_release_event().connect (sigc::mem_fun (*this, &LevelMeterBase::meter_button_release), false);
|
||||
|
||||
mtr_pack (*meters[n].meter);
|
||||
meters[n].meter->show_all ();
|
||||
meters[n].packed = true;
|
||||
}
|
||||
}
|
||||
|
||||
//pack_end (*meters[n].meter, false, false);
|
||||
mtr_pack (*meters[n].meter);
|
||||
meters[n].meter->show_all ();
|
||||
meters[n].packed = true;
|
||||
}
|
||||
//show();
|
||||
color_changed = false;
|
||||
visible_meter_type = meter_type;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue