From d528b298ca30d2b3f5667dd35457760800441d6a Mon Sep 17 00:00:00 2001 From: OmikronApex Date: Mon, 29 Jun 2026 23:48:10 +0200 Subject: [PATCH] fix(input_setup): keep backdrop-blur during calibration wizard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hiding the entire #input-setup-overlay removed it from the render tree, which also removed its backdrop-blur-sm — causing the background blur to vanish while the calibration wizard was open. Fix: hide only the [data-is-host] card inside the overlay, keeping the overlay element itself (and its backdrop-blur) alive in the DOM. Co-Authored-By: Claude Sonnet 4.6 --- plugins/input_setup/screen.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/plugins/input_setup/screen.js b/plugins/input_setup/screen.js index 718801a..c85d289 100644 --- a/plugins/input_setup/screen.js +++ b/plugins/input_setup/screen.js @@ -164,20 +164,21 @@ host.querySelector('[data-is-cal]').addEventListener('click', () => { if (hasDetector) { - // Hide our own full-screen overlay while note_detect's - // Calibration Wizard runs on top. That wizard goes - // transparent (pointer-events:none) when it minimizes to - // expose the Tuner; if our overlay stayed up it would show - // through — covering the tuner with the still-mounted - // "select your input" card and looking like a second - // wizard at the input step. Restore it on done/cancel - // (one of which always fires when that wizard closes). + // Hide only the inner card while note_detect's Calibration + // Wizard runs on top — keep the overlay element in the DOM + // so its backdrop-blur stays active. The wizard goes + // pointer-events:none when it minimizes to expose the Tuner; + // hiding just the card prevents the "select your input" panel + // from showing through without removing the background blur. + // Restore on done/cancel (one always fires when wizard closes). const ov = document.getElementById('input-setup-overlay'); - const prevDisplay = ov ? ov.style.display : ''; - if (ov) ov.style.display = 'none'; + const card = ov && ov.querySelector('[data-is-host]'); + const prevDisplay = card ? card.style.display : ''; + if (card) card.style.display = 'none'; const restore = () => { const o = document.getElementById('input-setup-overlay'); - if (o) o.style.display = prevDisplay; + const c = o && o.querySelector('[data-is-host]'); + if (c) c.style.display = prevDisplay; }; window.noteDetect.launchCalibration({ instrument: inst,