fix: keep alignment guides continuous behind launcher
This commit is contained in:
@@ -39,7 +39,7 @@ Open `Package.swift` in Xcode to edit the project. Use the bundled app above to
|
||||
- Standard macOS text-editing shortcuts work in the search field.
|
||||
- Command-comma opens the native Settings window.
|
||||
- Right-click the launcher background for Settings and Quit.
|
||||
- Drag the panel background to move it freely. Three stippled guides mark the target left, right, and top edges: the launcher is horizontally centered, its top edge sits one-fifth down the current display's usable area, and the side guides are exactly one launcher-width apart. Each axis brightens within its 12-point snap range, but the window snaps only when the mouse button is released. Releasing outside the range leaves that axis untouched; dismissal cancels without snapping. Guides disappear on release or dismissal and do not intercept input.
|
||||
- Drag the panel background to move it freely. Three stippled guides mark the target left, right, and top edges: the launcher is horizontally centered, its top edge sits one-fifth down the current display's usable area, and the side guides are exactly one launcher-width apart. Each axis brightens within its 12-point snap range, but the window snaps only when the mouse button is released. Releasing outside the range leaves that axis untouched; dismissal cancels without snapping. Guides remain continuous underneath the frosted launcher rather than being cut out around it. They disappear on release or dismissal and do not intercept input.
|
||||
|
||||
Conjure runs as a native accessory app: no Dock icon, app-switcher entry, or menu-bar menus. Keyboard menu shortcuts remain available while its window is focused.
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ final class LauncherAlignmentGuides {
|
||||
overlay.setFrame(frame, display: false)
|
||||
}
|
||||
view.targetFrame = alignment.targetFrame.offsetBy(dx: -frame.minX, dy: -frame.minY)
|
||||
view.launcherFrame = window.frame.offsetBy(dx: -frame.minX, dy: -frame.minY)
|
||||
view.snapsHorizontally = alignment.snappedOrigin.x == alignment.targetFrame.minX
|
||||
view.snapsVertically = alignment.snappedOrigin.y == alignment.targetFrame.minY
|
||||
view.needsDisplay = true
|
||||
@@ -55,7 +54,6 @@ final class LauncherAlignmentGuides {
|
||||
|
||||
@MainActor
|
||||
private final class AlignmentGuideView: NSView {
|
||||
var launcherFrame = NSRect.zero
|
||||
var targetFrame = NSRect.zero
|
||||
var snapsHorizontally = false
|
||||
var snapsVertically = false
|
||||
@@ -71,8 +69,7 @@ private final class AlignmentGuideView: NSView {
|
||||
context.saveGState()
|
||||
defer { context.restoreGState() }
|
||||
context.addRect(bounds)
|
||||
context.addRect(launcherFrame.insetBy(dx: 0.75, dy: 0.75))
|
||||
context.clip(using: .evenOdd)
|
||||
context.clip()
|
||||
context.setLineWidth(1.5)
|
||||
context.setLineCap(.round)
|
||||
context.setLineDash(phase: 0, lengths: Self.dash)
|
||||
|
||||
Reference in New Issue
Block a user