Skip to content

Smooth shelf dismissal animation - #4

Open
brzvsk wants to merge 1 commit into
tarikbc:mainfrom
brzvsk:fix/shelf-dismiss-animation
Open

Smooth shelf dismissal animation#4
brzvsk wants to merge 1 commit into
tarikbc:mainfrom
brzvsk:fix/shelf-dismiss-animation

Conversation

@brzvsk

Copy link
Copy Markdown

Summary

  • keep Copy active until the shelf is fully ordered out, so Liquid Glass does not resample a different app backdrop during the fade
  • leave the hidden panel at zero opacity instead of resetting it in the same run-loop turn as orderOut
  • make dismissal slightly smoother with a 180 ms ease-in-out fade and a smaller 18 pt slide
  • run paste and open-URL actions after dismissal and focus restoration; overlapping actions join the same close and are drained in FIFO order
  • preserve the immediate path when Reduce Motion is enabled

Why

On macOS 26, the shelf could flicker for a frame or appear to disappear abruptly. An Instruments Animation Hitches trace did not show application-side rendering hitches: the transition is handled by the compositor. The visible flash came from changing the active app behind the live glass while it was still on screen, combined with resetting the panel opacity immediately after ordering it out.

Verification

  • built the macOS app successfully with xcodebuild
  • ran all 184 CopyCore tests successfully
  • exercised eight repeated show/hide cycles without a crash or stuck close state
  • manually verified the animation, Escape, click-away, paste, and focus restoration on macOS 26.5.2
  • ran a focused independent review; its overlapping-action finding was fixed, and the linked closure review returned ready with zero findings

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@brzvsk