Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix waveform strip first-note delay and floating palette suppression

Pre-build panel at launch via warmUp() so the first note does not stall
on panel + Metal pipeline construction. Move suppression update to after
the floating palette is actually shown so isShown is true when checked.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

authored by

Esteban Uribe
Claude Opus 4.6
and committed by
prompt.ac/@jeffrey
6b2576a1 c738bee1

+13
+8
slab/menuband/Sources/MenuBand/AppDelegate.swift
··· 181 181 } 182 182 updateIcon() 183 183 184 + // Pre-build the waveform strip panel so the first note press 185 + // doesn't stall on panel + Metal pipeline construction. 186 + waveformStrip.reposition(statusItemButton: statusItem.button) 187 + waveformStrip.warmUp() 188 + 184 189 registerTypeModeHotkey() 185 190 _ = registerFocusCaptureHotkey(MenuBandShortcutPreferences.focusShortcut) 186 191 _ = registerPlayPaletteHotkey(MenuBandShortcutPreferences.playPaletteShortcut) ··· 405 410 private func togglePlayPaletteFromShortcut() { 406 411 if floatingPlayPalette.isShown { 407 412 floatingPlayPalette.toggleFromShortcut() 413 + updateWaveformStripSuppression() 408 414 return 409 415 } 410 416 beginFloatingPlayPalette() 411 417 floatingPlayPalette.toggleFromShortcut() 418 + updateWaveformStripSuppression() 412 419 } 413 420 414 421 private func togglePlayPaletteFromCommand() { ··· 416 423 beginFloatingPlayPalette() 417 424 appBeforePopover = nil 418 425 floatingPlayPalette.showFromCommand(restoringTo: appToRestore) 426 + updateWaveformStripSuppression() 419 427 } 420 428 421 429 private func beginFloatingPlayPalette() {
+5
slab/menuband/Sources/MenuBand/MenuBarWaveformStrip.swift
··· 56 56 waveformView.menuBand = menuBand 57 57 } 58 58 59 + /// Pre-build the panel so the first note doesn't pay construction cost. 60 + func warmUp() { 61 + if panel == nil { buildPanel() } 62 + } 63 + 59 64 deinit { 60 65 stopSlide() 61 66 }