Fix collapse issues

This commit is contained in:
Beingpax 2025-08-07 02:11:43 +05:45
parent 0e930c519c
commit ec78041069
2 changed files with 17 additions and 2 deletions

View File

@ -10,6 +10,11 @@ struct MiniRecorderView: View {
@State private var showEnhancementPromptPopover = false @State private var showEnhancementPromptPopover = false
@State private var isHovering = 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 { private var backgroundView: some View {
ZStack { ZStack {
Color.black.opacity(0.9) Color.black.opacity(0.9)
@ -76,12 +81,19 @@ struct MiniRecorderView: View {
windowManager.expand() windowManager.expand()
} else { } else {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) {
if !isHovering { // Only collapse if not hovering AND no popover is showing
if !isHovering && !isAnyPopoverShowing {
windowManager.collapse() windowManager.collapse()
} }
} }
} }
} }
.onAppear {
// Set up the callback so WindowManager can check popover and hover state
windowManager.shouldPreventCollapse = {
isAnyPopoverShowing || isHovering
}
}
} }
} }
} }

View File

@ -9,6 +9,9 @@ class MiniWindowManager: ObservableObject {
private let whisperState: WhisperState private let whisperState: WhisperState
private let recorder: Recorder 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) { init(whisperState: WhisperState, recorder: Recorder) {
self.whisperState = whisperState self.whisperState = whisperState
self.recorder = recorder self.recorder = recorder
@ -59,7 +62,7 @@ class MiniWindowManager: ObservableObject {
expand() expand()
DispatchQueue.main.asyncAfter(deadline: .now() + 2.5) { DispatchQueue.main.asyncAfter(deadline: .now() + 2.5) {
if self.isExpanded { if self.isExpanded && !(self.shouldPreventCollapse?() ?? false) {
self.collapse() self.collapse()
} }
} }