Require mouseExit after hotkey close before re-opening
This commit is contained in:
Binary file not shown.
@@ -160,6 +160,7 @@ struct ContentView: View {
|
|||||||
} else {
|
} else {
|
||||||
hoverTask?.cancel()
|
hoverTask?.cancel()
|
||||||
withAnimation(hoverAnimation) { vm.isHovering = false }
|
withAnimation(hoverAnimation) { vm.isHovering = false }
|
||||||
|
vm.clearHoverOpenSuppression()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,6 +169,7 @@ struct ContentView: View {
|
|||||||
guard openNotchOnHover,
|
guard openNotchOnHover,
|
||||||
vm.notchState == .closed,
|
vm.notchState == .closed,
|
||||||
!vm.isCloseTransitionActive,
|
!vm.isCloseTransitionActive,
|
||||||
|
!vm.suppressHoverOpenUntilHoverExit,
|
||||||
vm.isHovering else { return }
|
vm.isHovering else { return }
|
||||||
|
|
||||||
hoverTask = Task { @MainActor in
|
hoverTask = Task { @MainActor in
|
||||||
@@ -175,7 +177,8 @@ struct ContentView: View {
|
|||||||
guard !Task.isCancelled,
|
guard !Task.isCancelled,
|
||||||
vm.isHovering,
|
vm.isHovering,
|
||||||
vm.notchState == .closed,
|
vm.notchState == .closed,
|
||||||
!vm.isCloseTransitionActive else { return }
|
!vm.isCloseTransitionActive,
|
||||||
|
!vm.suppressHoverOpenUntilHoverExit else { return }
|
||||||
vm.requestOpen?()
|
vm.requestOpen?()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class NotchViewModel: ObservableObject {
|
|||||||
@Published var closedNotchSize: CGSize
|
@Published var closedNotchSize: CGSize
|
||||||
@Published var isHovering: Bool = false
|
@Published var isHovering: Bool = false
|
||||||
@Published var isCloseTransitionActive: Bool = false
|
@Published var isCloseTransitionActive: Bool = false
|
||||||
|
@Published var suppressHoverOpenUntilHoverExit: Bool = false
|
||||||
|
|
||||||
let terminalManager = TerminalManager.shared
|
let terminalManager = TerminalManager.shared
|
||||||
|
|
||||||
@@ -74,6 +75,9 @@ class NotchViewModel: ObservableObject {
|
|||||||
func beginCloseTransition() {
|
func beginCloseTransition() {
|
||||||
closeTransitionTask?.cancel()
|
closeTransitionTask?.cancel()
|
||||||
isCloseTransitionActive = true
|
isCloseTransitionActive = true
|
||||||
|
if isHovering {
|
||||||
|
suppressHoverOpenUntilHoverExit = true
|
||||||
|
}
|
||||||
|
|
||||||
let delay = closeInteractionLockDuration
|
let delay = closeInteractionLockDuration
|
||||||
closeTransitionTask = Task { @MainActor [weak self] in
|
closeTransitionTask = Task { @MainActor [weak self] in
|
||||||
@@ -90,6 +94,10 @@ class NotchViewModel: ObservableObject {
|
|||||||
isCloseTransitionActive = false
|
isCloseTransitionActive = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func clearHoverOpenSuppression() {
|
||||||
|
suppressHoverOpenUntilHoverExit = false
|
||||||
|
}
|
||||||
|
|
||||||
deinit {
|
deinit {
|
||||||
closeTransitionTask?.cancel()
|
closeTransitionTask?.cancel()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user