aboutsummaryrefslogtreecommitdiffstats
path: root/appearance/SunsetTab.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-29 13:04:12 +0200
committerDanilo M. <danix@danix.xyz>2026-09-29 13:04:12 +0200
commitb33c7f5ec094469becd4f842e2bed37efb85dcfb (patch)
treeeb924a74094f15dd4511fbc43172a2902d4a63d3 /appearance/SunsetTab.qml
parentae193343b9633eb79287c4e2589b95c02f538e48 (diff)
downloadquickshell-b33c7f5ec094469becd4f842e2bed37efb85dcfb.tar.gz
quickshell-b33c7f5ec094469becd4f842e2bed37efb85dcfb.zip
feat(sound): crossfade album art, fade to plain without it
The OSD background held one Image, so a track change swapped covers in a single frame. Two images now take turns: the new cover loads into the hidden one and is brought to the front only once it reports Ready, then both fade over 300ms. Waiting for Ready is what keeps a slow or remote art server from fading through black. The blur, scrim, sheen and grain are grouped under one item whose opacity follows artOn. It goes false when the player has no art or the cover for the current track errors, so the panel fades back to its plain translucent look instead of snapping, or keeping a stale cover that reads as a fault. It goes true again only when a new cover has loaded, so returning from plain never flashes the previous one. The back image's source is cleared before being set, so a URL it already holds still reloads and reports a status. onWantChanged misses the value at load, hence the Component.onCompleted call. Not yet seen on screen: the shell reloaded it cleanly but the fade was not watched through a track change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'appearance/SunsetTab.qml')
0 files changed, 0 insertions, 0 deletions