✨ Improved snapping on left, right, and bottom edges#1068
✨ Improved snapping on left, right, and bottom edges#1068MrKai77 merged 6 commits intoMrKai77:developfrom
Conversation
|
Otherwise great work! This is totally a great start on adding more actions to window snapping! Just want to make sure we don't introduce any significant breaking changes for existing users, such as the halves I mentioned above. |
a99004b to
b6ed787
Compare
|
@MrKai77 I appreciate the feedback provided! I agree that minimizing breaking changes would minimize risk for our current users. I don't know if this application has ever put proposed changes behind an experiment, but that may be helpful (or a separate configuration). I think it would also be helpful for you or other users to try this out before submitting. I am able to build and run this myself, but if possible, I would like user feedback from folks actually trying it out. Happy to take further feedback! P.S. another side comment, I do notice that dragging against the top edge takes a really long time to compute compared to other edges. You can see my cursor struggling on the top edge in the new video snippets. Any known reason for this? |
b6ed787 to
ac02046
Compare
MrKai77
left a comment
There was a problem hiding this comment.
This is working really well actually!
On the experiment point: we sometimes tuck more advanced features behind the Advanced tab or a defaults write flag to keep them out of reach for most users, but I don’t think that’s necessary here.
I’ve tested this locally and it feels very smooth. I’ll also tag @SenpaiHunters to give it a try if possible. Once merged, this will roll into Loop’s development build, where a few hundred beta testers can provide additional feedback before it reaches stable.
Regarding your side note: the issue is likely caused by this line:
Loop/Loop/Core/WindowDragManager.swift
Line 111 in c274356
You can also mitigate it by disabling “Suppress Mission Control” in Loop’s settings.
Overall, this is looking fantastic, really appreciate the work here :)
…swift Co-authored-by: Kai <mrkai77@icloud.com>
Description
Adds Rectangle-style vertical snapping to
WindowDirection+Snapping.swift. When dragging a window to the left, right, or bottom screen edge, snap zones now include corners, halves, thirds, center thirds, and two-thirds cycling — providing full coverage of all tiling options via drag-to-snap.Fixes #1066
Changes
verticalCenterThirdwithtopTwoThirds/bottomTwoThirdscyclingprocessLeftSnap,processRightSnap, andprocessBottomSnapinto a single generic processEdgeSnap function with anEdgeZoneDirectionsconfiguration struct, eliminating code duplicationHow has this been tested?
macOS (Sequoia 15.3.2)
Tested drag-to-snap on all three edges (left, right, bottom), verifying each of the 7 zones returns the correct
WindowDirection:topHalf,topThird,verticalCenterThird,bottomThird,bottomHalfzonestopHalf,topThird,verticalCenterThird,bottomThird,bottomHalfzonesleftHalf,leftThird,horizontalCenterThird,rightThird,rightHalfzonestopThird→ drag to center →topTwoThirds)topHalfat edges,maximizein center)Video Demos
Snapping.Left.and.Right.mp4
Snapping.Bottom.mp4
Checklist
Please describe to which degree, if any, an LLM was used in creating this pull request.
I used Claude Opus 4.6 (Thinking) to help develop the snapping zone logic, zone thresholds,
EdgeZoneDirectionsconsolidation pattern, and code structure. All changes were reviewed and tested manually.