Merge pull request #1863 from robbiev/fix-macos-inspector-focus

macos: regain window focus on inspector toggle
This commit is contained in:
Mitchell Hashimoto
2024-06-18 17:00:54 -04:00
committed by GitHub

View File

@ -37,6 +37,19 @@ extension Ghostty {
}
}
.onReceive(pubInspector) { onControlInspector($0) }
.onChange(of: surfaceView.inspectorVisible) { inspectorVisible in
// When we show the inspector, we want to focus on the inspector.
// When we hide the inspector, we want to move focus back to the surface.
if (inspectorVisible) {
// We need to delay this until SwiftUI shows the inspector.
DispatchQueue.main.async {
_ = surfaceView.resignFirstResponder()
inspectorFocus = true
}
} else {
Ghostty.moveFocus(to: surfaceView)
}
}
}
private func onControlInspector(_ notification: SwiftUI.Notification) {
@ -57,18 +70,6 @@ extension Ghostty {
default:
return
}
// When we show the inspector, we want to focus on the inspector.
// When we hide the inspector, we want to move focus back to the surface.
if (surfaceView.inspectorVisible) {
// We need to delay this until SwiftUI shows the inspector.
DispatchQueue.main.async {
_ = surfaceView.resignFirstResponder()
inspectorFocus = true
}
} else {
Ghostty.moveFocus(to: surfaceView)
}
}
}