Skip to content

Commit 4b1271a

Browse files
committed
Fix activation logic
1 parent bc57cf1 commit 4b1271a

2 files changed

Lines changed: 13 additions & 20 deletions

File tree

Core/Sources/Service/GlobalShortcutManager.swift

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ final class GlobalShortcutManager {
2323

2424
KeyboardShortcuts.onKeyUp(for: .showHideWidget) { [guiController] in
2525
let isXCodeActive = XcodeInspector.shared.activeXcode != nil
26-
let isExtensionActive = NSApplication.shared.isActive
2726

2827
if !isXCodeActive,
2928
!guiController.viewStore.state.suggestionWidgetState.chatPanelState.isPanelDisplayed,
@@ -33,17 +32,6 @@ final class GlobalShortcutManager {
3332
} else {
3433
guiController.viewStore.send(.toggleWidgetsHotkeyPressed)
3534
}
36-
37-
if !isExtensionActive {
38-
Task {
39-
try await Task.sleep(nanoseconds: 150_000_000)
40-
NSApplication.shared.activate(ignoringOtherApps: true)
41-
}
42-
} else if let previous = XcodeInspector.shared.previousActiveApplication,
43-
!previous.isActive
44-
{
45-
previous.runningApplication.activate()
46-
}
4735
}
4836

4937
XcodeInspector.shared.$activeApplication.sink { app in

Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public struct WidgetFeature: ReducerProtocol {
2121
public var sharedPanelWindowState = WindowState()
2222
public var tabWindowState = WindowState()
2323
}
24-
24+
2525
public enum WindowCanBecomeKey: Equatable {
2626
case sharedPanel
2727
case chatPanel
@@ -153,8 +153,8 @@ public struct WidgetFeature: ReducerProtocol {
153153
}
154154

155155
case .circularWidget(.widgetClicked):
156-
let isDisplayingContent = state._circularWidgetState.isDisplayingContent
157-
if isDisplayingContent {
156+
let wasDisplayingContent = state._circularWidgetState.isDisplayingContent
157+
if wasDisplayingContent {
158158
state.panelState.sharedPanelState.isPanelDisplayed = false
159159
state.panelState.suggestionPanelState.isPanelDisplayed = false
160160
state.chatPanelState.isPanelDisplayed = false
@@ -163,11 +163,16 @@ public struct WidgetFeature: ReducerProtocol {
163163
state.panelState.suggestionPanelState.isPanelDisplayed = true
164164
state.chatPanelState.isPanelDisplayed = true
165165
}
166+
let isDisplayingContent = state._circularWidgetState.isDisplayingContent
166167
return .run { _ in
167-
guard isDisplayingContent else { return }
168-
if let app = activeApplicationMonitor.previousApp, app.isXcode {
169-
try await Task.sleep(nanoseconds: 200_000_000)
170-
app.activate()
168+
if isDisplayingContent, !(await NSApplication.shared.isActive) {
169+
try await Task.sleep(nanoseconds: 50_000_000)
170+
await NSApplication.shared.activate(ignoringOtherApps: true)
171+
} else if !isDisplayingContent,
172+
let app = xcodeInspector.previousActiveApplication
173+
{
174+
try await Task.sleep(nanoseconds: 20_000_000)
175+
app.runningApplication.activate()
171176
}
172177
}
173178

@@ -584,7 +589,7 @@ public struct WidgetFeature: ReducerProtocol {
584589
await send(.updateWindowOpacityFinished)
585590
}
586591
.cancellable(id: DebounceKey.updateWindowOpacity, cancelInFlight: true)
587-
592+
588593
case .updateWindowOpacityFinished:
589594
state.lastUpdateWindowOpacityTime = Date()
590595
return .none

0 commit comments

Comments
 (0)