implementation("com.timkrest:underlay:0.3.0")
Added
UnderlayState.source: the UnderlaySource the overlay carrying the state draws from, as Compose
state. Null while no overlay carries it, so a badge outside the overlay clears on dismiss without
hosting the value from onSourceChange by hand. The callback stays for callers without a state.
Fixed
- The snapshot could spill up to three host pixels past the composable it backs, where its
placement rounds out to whole snapshot pixels. It is now clipped to the composable.
- On API 31 and above with cross-window blur switched off, opening an overlay captured the host
window twice: the initial callback of the blur listener repeated the choice start() had already
made. The source is now chosen only when the system's answer changes.
- A detached node kept its
Activity, Configuration and WindowManager until it was collected.