@@ -10,15 +10,18 @@ public final class OverlayWindowController {
1010 _ application: NSRunningApplication
1111 ) -> any IDEWorkspaceWindowOverlayWindowControllerContentProvider
1212
13- var ideWindowOverlayWindowControllers : [ URL : IDEWorkspaceWindowOverlayWindowController ] = [ : ]
14- var ideWindowOverlayWindowControllerContentProviderFactories :
13+ static var ideWindowOverlayWindowControllerContentProviderFactories :
1514 [ IDEWorkspaceWindowOverlayWindowControllerContentProviderFactory ] = [ ]
1615
17- public init ( ) {
16+ var ideWindowOverlayWindowControllers : [ URL : IDEWorkspaceWindowOverlayWindowController ] = [ : ]
17+
18+ public init ( ) { }
19+
20+ public func start( ) {
1821 observeEvents ( )
1922 }
2023
21- public func registerIDEWorkspaceWindowOverlayWindowControllerContentProviderFactory(
24+ public static func registerIDEWorkspaceWindowOverlayWindowControllerContentProviderFactory(
2225 _ factory: @escaping IDEWorkspaceWindowOverlayWindowControllerContentProviderFactory
2326 ) {
2427 ideWindowOverlayWindowControllerContentProviderFactories. append ( factory)
@@ -33,6 +36,20 @@ extension OverlayWindowController {
3336
3437private extension OverlayWindowController {
3538 func observeWindowChange( ) {
39+ if ideWindowOverlayWindowControllers. isEmpty {
40+ if let app = XcodeInspector . shared. activeXcode,
41+ let windowInspector = XcodeInspector . shared
42+ . focusedWindow as? WorkspaceXcodeWindowInspector
43+ {
44+ let workspaceURL = windowInspector. workspaceURL
45+ createNewIDEOverlayWindowController (
46+ for: workspaceURL,
47+ inspector: windowInspector,
48+ application: app. runningApplication
49+ )
50+ }
51+ }
52+
3653 withPerceptionTracking {
3754 _ = XcodeInspector . shared. focusedWindow
3855 _ = XcodeInspector . shared. activeXcode
0 commit comments