[Maintenance] Dev/blur preview - #1859
kiteretsu903 wants to merge 29 commits into
Conversation
Interpolate same-display resizing with a settling curve, preserve pending destinations for shortcut history, and let native dragging own position during size restoration. Respect Reduce Motion and keep existing mover fallbacks.
Use native blur with optional tint, a subtle outline, and an exterior shadow aligned at screen edges. Share the animation curve, respect reduced motion and transparency, and configure authored layers for SDR.
Add the two opt-in controls and their translations, and move haptic feedback into the left column.
Use Device Control and Data Access on macOS 27 and retain the earlier permission wording on older releases.
Only finish drag restoration on mouse-up when a window was actually being dragged. This prevents the drag monitor from prematurely settling a title-bar maximize or restore animation started by the same release event. Document that title-bar double-click uses the existing snap animation setting. Release build passed; live event ordering has not been reproduced.
Detect movement from current displayed bounds, preserve the original grab reference, and let restoration finish after mouse release. Add regression coverage and document the remaining far-right drag jumps.
Add native drag handoff, preview rendering, verified parking and recovery, and constrained cross-display placement. Preserve animated title-bar and command restoration while applying drag restoration immediately. Default new animation selections to Direct Resize, move Animate footprint to the left settings column, and expose the Blue preview label. Keep the existing repository tests compatible with the updated interfaces. New animation tests, native harnesses, visual fixtures and historical evidence are maintained only in the local rectangle-animation-tests skill, outside the repository. Rebase integration preserves upstream row/column tiling and alignment tolerance, shares its forceRefresh window-list API, and adapts its test fixture to position-aware frame writes. Validation: 395 repository tests and 810 isolated local-skill tests pass; universal Release builds successfully.
Correct final alignment of constrained windows and retry native restore sizes that overshoot. Resize IINA once and align after its aspect correction, falling back when saved-size restoration is not achieved. Validation: 844 tests, 33 final native layout cases, 16 repeated IINA transitions, and 6 installed-app checks. New tests and evidence remain in the local animation-test skill.
This reverts commit b0b9dab.
ee52867 to
6202e38
Compare
# Conflicts: # Rectangle/WindowManager.swift # Rectangle/WindowMover/WindowAnimationCurves.swift # Rectangle/WindowMover/WindowAnimator.swift
|
Alright, so after merging the other PR, I ended up walking the path of building on macOS 27 finally, and I relented on letting Xcode specify the minimum macOS version. That should be most of the merge conflicts, aside from me changing around a few things on the |
|
@rxhanson Yep, resolved the conflicts |
|
Thanks! After spending a while with this and walking through the code and trying my own tweaks on what's here, I'm feeling inclined not to pull it in. I feel bad because I led you down this path, but I think the experience of your direct resizing is simply better even with the limitations it faces. Sometimes it's hard to figure things like this out without giving it a try, though. I appreciate your responsiveness and effort here! What are your thoughts? |
|
@ryonakano Yep, i agree to drop this for now. it was a great experiment haha but it does look not ideal to use the window parking approach |
|
Sounds good. Again, I appreciate the work! It's always possible that this could be useful in some form in the future. |
Split a branch for dev of blur preview