Skip to content

Commit 81ca09d

Browse files
committed
Use ObjectIdentifier instead
1 parent 2c04b70 commit 81ca09d

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

OverlayWindow/Sources/OverlayWindow/OverlayWindowController.swift

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public final class OverlayWindowController {
1515
[IDEWorkspaceWindowOverlayWindowControllerContentProviderFactory] = []
1616

1717
var ideWindowOverlayWindowControllers =
18-
[CGWindowID: IDEWorkspaceWindowOverlayWindowController]()
18+
[ObjectIdentifier: IDEWorkspaceWindowOverlayWindowController]()
1919
var updateWindowStateTask: Task<Void, Error>?
2020

2121
lazy var fullscreenDetector = {
@@ -81,7 +81,6 @@ private extension OverlayWindowController {
8181
.focusedWindow as? WorkspaceXcodeWindowInspector
8282
{
8383
createNewIDEOverlayWindowController(
84-
for: windowInspector.windowID,
8584
inspector: windowInspector,
8685
application: app.runningApplication
8786
)
@@ -98,7 +97,7 @@ private extension OverlayWindowController {
9897
defer { self.observeWindowChange() }
9998

10099
guard XcodeInspector.shared.activeApplication?.isXcode ?? false else {
101-
var closedControllers: [CGWindowID] = []
100+
var closedControllers: [ObjectIdentifier] = []
102101
for (id, controller) in self.ideWindowOverlayWindowControllers {
103102
if controller.isWindowClosed {
104103
controller.dim()
@@ -122,19 +121,18 @@ private extension OverlayWindowController {
122121

123122
let windowInspector = XcodeInspector.shared.focusedWindow
124123
if let ideWindowInspector = windowInspector as? WorkspaceXcodeWindowInspector {
125-
let windowID = ideWindowInspector.windowID
124+
let objectID = ObjectIdentifier(ideWindowInspector)
126125
// Workspace window is active
127126
// Hide all controllers first
128127
for (id, controller) in self.ideWindowOverlayWindowControllers {
129-
if id != windowID {
128+
if id != objectID {
130129
controller.hide()
131130
}
132131
}
133-
if let controller = self.ideWindowOverlayWindowControllers[windowID] {
132+
if let controller = self.ideWindowOverlayWindowControllers[objectID] {
134133
controller.access()
135134
} else {
136135
self.createNewIDEOverlayWindowController(
137-
for: windowID,
138136
inspector: ideWindowInspector,
139137
application: app.runningApplication
140138
)
@@ -150,10 +148,10 @@ private extension OverlayWindowController {
150148
}
151149

152150
func createNewIDEOverlayWindowController(
153-
for windowID: CGWindowID,
154151
inspector: WorkspaceXcodeWindowInspector,
155152
application: NSRunningApplication
156153
) {
154+
let id = ObjectIdentifier(inspector)
157155
let newController = IDEWorkspaceWindowOverlayWindowController(
158156
inspector: inspector,
159157
application: application,
@@ -164,10 +162,10 @@ private extension OverlayWindowController {
164162
}
165163
)
166164
newController.access()
167-
ideWindowOverlayWindowControllers[windowID] = newController
165+
ideWindowOverlayWindowControllers[id] = newController
168166
}
169167

170-
func removeIDEOverlayWindowController(for id: CGWindowID) {
168+
func removeIDEOverlayWindowController(for id: ObjectIdentifier) {
171169
if let controller = ideWindowOverlayWindowControllers[id] {
172170
controller.destroy()
173171
}
@@ -178,7 +176,8 @@ private extension OverlayWindowController {
178176
let windowInspector = XcodeInspector.shared.focusedWindow
179177
guard let activeWindowController = {
180178
if let windowInspector = windowInspector as? WorkspaceXcodeWindowInspector {
181-
return ideWindowOverlayWindowControllers[windowInspector.windowID]
179+
let id = ObjectIdentifier(windowInspector)
180+
return ideWindowOverlayWindowControllers[id]
182181
} else {
183182
return nil
184183
}

0 commit comments

Comments
 (0)