Ω-W1-T3 remediation: meter stays live and washed under the curve popup, not frozen
This commit is contained in:
@@ -77,13 +77,16 @@ void ReaSamplerEditor::invalidate() {
|
||||
|
||||
void ReaSamplerEditor::invalidateMeter() {
|
||||
if (!childHwnd_) return;
|
||||
// The meter is covered (Browse, the curve popup) or has nothing to draw (empty state) —
|
||||
// ballistics still advance in onMeterTimer, but nothing on screen changed, so invalidating
|
||||
// anything here would only buy a whole-client repaint of chrome/waveform/deck the meter
|
||||
// never touches. Distinct from "bounds not resolved yet" below: this is a fact about what
|
||||
// the face is showing, not about whether meterRects_ happens to be populated.
|
||||
const bool meterOnScreen =
|
||||
view_ == View::kSample && curvePopup_ == CurveTarget::kNone && !selectedId_.empty();
|
||||
// The meter is covered (Browse) or has nothing to draw (empty state) — ballistics still
|
||||
// advance in onMeterTimer, but nothing on screen changed, so invalidating anything here
|
||||
// would only buy a whole-client repaint of chrome/waveform/deck the meter never touches.
|
||||
// Distinct from "bounds not resolved yet" below: this is a fact about what the face is
|
||||
// showing, not about whether meterRects_ happens to be populated. The curve popup does NOT
|
||||
// cover the meter — its centered sheet tops out at 520x380 (curve_popup.h) against the
|
||||
// meter's fixed right-anchored slot, at any resizable size — so the meter stays on screen
|
||||
// (dimmed by the popup's wash, which paintMeterField reapplies to the field alone) and keeps
|
||||
// its own rate rather than freezing under the sheet.
|
||||
const bool meterOnScreen = view_ == View::kSample && !selectedId_.empty();
|
||||
if (!meterOnScreen) return;
|
||||
|
||||
const Rect& f = meterRects_.field;
|
||||
|
||||
Reference in New Issue
Block a user