From 4da73ecde198560883e4ae7a2cf616d0a0d838bb Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Sat, 8 Aug 2026 13:43:08 -0700 Subject: [PATCH] Keep the direct-download build compiling without TrackDrum focusedInputMode is declared inside #if MAC_APP_STORE but read from two shared call sites that carry no guard, so only the Xcode build compiled. The recent TrackDrum work was never built through SwiftPM, which is the other half of why install.sh was broken. Declare it as a constant in the !MAC_APP_STORE block instead of guarding each read: that build has no second focused input to hand the trackpad to, so local FX is the only answer it can give. --- slab/menuband/Sources/MenuBand/AppDelegate.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/slab/menuband/Sources/MenuBand/AppDelegate.swift b/slab/menuband/Sources/MenuBand/AppDelegate.swift index 08b9fc5788..929a54d7cc 100644 --- a/slab/menuband/Sources/MenuBand/AppDelegate.swift +++ b/slab/menuband/Sources/MenuBand/AppDelegate.swift @@ -35,6 +35,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate { /// The former JukeWizard, now a first-class window and service inside this /// process. It starts lazily when the user chooses Juke. private let juke = MenuBandJuke() + /// TrackDrum is App-Store-build only, so there is no second focused input + /// to hand the trackpad to here — focus is always local FX. The real + /// `var` above lives in the MAC_APP_STORE block; this constant keeps the + /// two shared read sites (`handlePitchBendCursorMove`, the transient + /// surface gate) free of their own #if, which is how they came to be + /// ungated and break this build in the first place. + private let focusedInputMode: FocusedInputMode = .localFX #endif /// Live conductible drone/arp/drum loop (see MenuBandEngine + the /// `engine.*` distributed-notification handlers). -- 2.51.2