macos: set proper window title for focused split

This commit is contained in:
Mitchell Hashimoto
2023-03-08 15:26:58 -08:00
parent c0315e72f1
commit 0388dc35bb
2 changed files with 16 additions and 7 deletions

View File

@ -7,10 +7,12 @@ extension Ghostty {
/// split direction by splitting the terminal.
struct TerminalSplit: View {
@Environment(\.ghosttyApp) private var app
@FocusedValue(\.ghosttySurfaceTitle) private var surfaceTitle: String?
var body: some View {
if let app = app {
TerminalSplitChild(app)
.navigationTitle(surfaceTitle ?? "Ghostty")
}
}
}
@ -22,11 +24,6 @@ extension Ghostty {
case horizontal
}
enum Side: Hashable {
case TopLeft
case BottomRight
}
/// The stored state between invocations.
class ViewState: ObservableObject {
/// The direction of the split currently

View File

@ -5,10 +5,12 @@ extension Ghostty {
/// Render a terminal for the active app in the environment.
struct Terminal: View {
@Environment(\.ghosttyApp) private var app
@FocusedValue(\.ghosttySurfaceTitle) private var surfaceTitle: String?
var body: some View {
if let app = self.app {
TerminalForApp(app)
.navigationTitle(surfaceTitle ?? "Ghostty")
}
}
}
@ -46,8 +48,7 @@ extension Ghostty {
GeometryReader { geo in
Surface(view: surfaceView, hasFocus: hasFocus, size: geo.size)
.focused($surfaceFocus)
.focusedValue(\.ghosttySurfaceView, surfaceView)
.navigationTitle(surfaceView.title)
.focusedValue(\.ghosttySurfaceTitle, surfaceView.title)
}
.ghosttySurfaceView(surfaceView)
}
@ -547,3 +548,14 @@ extension FocusedValues {
}
}
extension FocusedValues {
var ghosttySurfaceTitle: String? {
get { self[FocusedGhosttySurfaceTitle.self] }
set { self[FocusedGhosttySurfaceTitle.self] = newValue }
}
struct FocusedGhosttySurfaceTitle: FocusedValueKey {
typealias Value = String
}
}