Fix collapse issues
This commit is contained in:
parent
0e930c519c
commit
ec78041069
@ -10,6 +10,11 @@ struct MiniRecorderView: View {
|
||||
@State private var showEnhancementPromptPopover = false
|
||||
@State private var isHovering = false
|
||||
|
||||
// Computed property to check if any popover is currently showing
|
||||
private var isAnyPopoverShowing: Bool {
|
||||
showPowerModePopover || showEnhancementPromptPopover
|
||||
}
|
||||
|
||||
private var backgroundView: some View {
|
||||
ZStack {
|
||||
Color.black.opacity(0.9)
|
||||
@ -76,12 +81,19 @@ struct MiniRecorderView: View {
|
||||
windowManager.expand()
|
||||
} else {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) {
|
||||
if !isHovering {
|
||||
// Only collapse if not hovering AND no popover is showing
|
||||
if !isHovering && !isAnyPopoverShowing {
|
||||
windowManager.collapse()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
// Set up the callback so WindowManager can check popover and hover state
|
||||
windowManager.shouldPreventCollapse = {
|
||||
isAnyPopoverShowing || isHovering
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,6 +9,9 @@ class MiniWindowManager: ObservableObject {
|
||||
private let whisperState: WhisperState
|
||||
private let recorder: Recorder
|
||||
|
||||
// Callback to check if collapse should be prevented (e.g., when popovers are showing)
|
||||
var shouldPreventCollapse: (() -> Bool)?
|
||||
|
||||
init(whisperState: WhisperState, recorder: Recorder) {
|
||||
self.whisperState = whisperState
|
||||
self.recorder = recorder
|
||||
@ -59,7 +62,7 @@ class MiniWindowManager: ObservableObject {
|
||||
expand()
|
||||
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 2.5) {
|
||||
if self.isExpanded {
|
||||
if self.isExpanded && !(self.shouldPreventCollapse?() ?? false) {
|
||||
self.collapse()
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user