Periodically re-apply CAShapeLayer geometry to recover from sleep/wake
NSWindow.frame survives display sleep/wake correctly (placed_correctly
logs always returned true), but the CAShapeLayer's frame/path can be
reset to a small rect at the layer origin during the wake transition.
Because SLS window bounds didn't change, sync_overlay never re-applied
state — leaving a tiny border in the bottom-left corner of an
otherwise-correctly-positioned window.
Add OverlayWindow::reapply_layer (cheap — only the layer, not the
NSWindow) and call it once a second from the periodic reconcile, plus
on every CGDisplayReconfiguration hotplug.
logs always returned true), but the CAShapeLayer's frame/path can be
reset to a small rect at the layer origin during the wake transition.
Because SLS window bounds didn't change, sync_overlay never re-applied
state — leaving a tiny border in the bottom-left corner of an
otherwise-correctly-positioned window.
Add OverlayWindow::reapply_layer (cheap — only the layer, not the
NSWindow) and call it once a second from the periodic reconcile, plus
on every CGDisplayReconfiguration hotplug.
Authored by
mfwolffe <wolffemf@dukes.jmu.edu>
- SHA
61997d6a583663ebe92d34346bb206a233aa9e2e- Parents
-
55bd2f9 - Tree
cf26f60