Skip to content

Commit c9160ca

Browse files
committed
Tweak chat panel window behavior
1 parent 162fb72 commit c9160ca

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

Core/Sources/SuggestionWidget/ChatPanelWindow.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ final class ChatPanelWindow: WidgetWindow {
4747
) {
4848
self.minimizeWindow = minimizeWindow
4949
super.init(
50-
contentRect: .zero,
50+
contentRect: .init(x: 0, y: 0, width: 300, height: 400),
5151
styleMask: [.resizable, .titled, .miniaturizable, .fullSizeContentView],
5252
backing: .buffered,
5353
defer: false

Core/Sources/SuggestionWidget/WidgetWindowsController.swift

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,12 @@ extension WidgetWindowsController {
418418
windows.widgetWindow.alphaValue = if noFocus {
419419
0
420420
} else if previousAppIsXcode {
421-
1
421+
if windows.chatPanelWindow.isFullscreen,
422+
windows.chatPanelWindow.isOnActiveSpace {
423+
0
424+
} else {
425+
1
426+
}
422427
} else {
423428
0
424429
}
@@ -573,11 +578,11 @@ extension WidgetWindowsController {
573578

574579
@MainActor
575580
func handleXcodeFullscreenChange() async {
576-
guard let activeXcode = await XcodeInspector.shared.safe.activeXcode
577-
else { return }
581+
let activeXcode = await XcodeInspector.shared.safe.activeXcode
578582

579-
let xcode = activeXcode.appElement
580-
let isFullscreen = if let xcodeWindow = xcode.focusedWindow {
583+
let isFullscreen = if let xcode = activeXcode?.appElement,
584+
let xcodeWindow = xcode.focusedWindow
585+
{
581586
xcodeWindow.isFullScreen && xcode.isFrontmost
582587
} else {
583588
false
@@ -593,10 +598,8 @@ extension WidgetWindowsController {
593598
$0.send(.didChangeActiveSpace(fullscreen: isFullscreen))
594599
}
595600

596-
if windows.fullscreenDetector.isOnActiveSpace {
597-
if xcode.focusedWindow != nil {
598-
windows.orderFront()
599-
}
601+
if windows.fullscreenDetector.isOnActiveSpace, isFullscreen {
602+
windows.orderFront()
600603
}
601604
}
602605
}
@@ -856,6 +859,10 @@ class WidgetWindow: CanBecomeKeyWindow {
856859
[.fullScreenAuxiliary, .transient]
857860
}
858861

862+
var isFullscreen: Bool {
863+
styleMask.contains(.fullScreen)
864+
}
865+
859866
private var state: State? {
860867
didSet {
861868
guard state != oldValue else { return }
@@ -885,3 +892,4 @@ func widgetLevel(_ addition: Int) -> NSWindow.Level {
885892
minimumWidgetLevel = NSWindow.Level.floating.rawValue
886893
return .init(minimumWidgetLevel + addition)
887894
}
895+

0 commit comments

Comments
 (0)