Fix: Hover Gesture

This commit is contained in:
Hariharan Mudaliar 2026-03-06 01:33:48 +05:30
commit c52fe73331
No known key found for this signature in database
GPG key ID: 025583EB0BE5640E
2 changed files with 19 additions and 8 deletions

View file

@ -76,7 +76,11 @@ private struct ScrollMonitor: NSViewRepresentable {
private var active = false
private let noiseThreshold: CGFloat = 0.2
private weak var observedView: NSView?
private let hoverInset: CGFloat = 14
/// Small vertical inset so scroll gestures fire when the cursor
/// "kisses" the very top of the screen inside the physical notch
/// area. Kept at zero horizontally to avoid unwanted hover opens
/// from the sides.
private let verticalEdgeInset: CGFloat = 4
private var lastEventTimestamp: TimeInterval = 0
init(direction: PanDirection, threshold: CGFloat, action: @escaping (CGFloat, NSEvent.Phase) -> Void) {
@ -154,7 +158,12 @@ private struct ScrollMonitor: NSViewRepresentable {
let windowPoint = window.convertPoint(fromScreen: screenPoint)
let localPoint = view.convert(windowPoint, from: nil)
let hitArea = view.bounds.insetBy(dx: -hoverInset, dy: -hoverInset)
// Extend the hit area vertically by a few points so the cursor
// at the very top screen edge (kissing the notch) still triggers
// scroll gestures. No horizontal extension to prevent false opens
// from the sides of the notch.
let hitArea = view.bounds.insetBy(dx: 0, dy: -verticalEdgeInset)
return hitArea.contains(localPoint)
}
}