mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
macOS: close search bar if needed when it loses focus
This adds features like: 1. Clicking outside of SearchBar works like typing `escape` 2. Typing `tab` while search bar is focused also works like typing `escape`
This commit is contained in:
@@ -437,11 +437,10 @@ extension Ghostty {
|
||||
}
|
||||
}
|
||||
#if canImport(AppKit)
|
||||
.onExitCommand {
|
||||
if searchState.needle.isEmpty {
|
||||
onClose()
|
||||
} else {
|
||||
Ghostty.moveFocus(to: surfaceView)
|
||||
.onExitCommand(perform: onResignFirstResponder)
|
||||
.onChange(of: isSearchFieldFocused) { newValue in
|
||||
if !newValue {
|
||||
onResignFirstResponder()
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -520,7 +519,15 @@ extension Ghostty {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
#if canImport(AppKit)
|
||||
private func onResignFirstResponder() {
|
||||
if searchState.needle.isEmpty {
|
||||
onClose()
|
||||
} else {
|
||||
Ghostty.moveFocus(to: surfaceView)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
private var clipShape: some Shape {
|
||||
if #available(iOS 26.0, macOS 26.0, *) {
|
||||
return ConcentricRectangle(corners: .concentric(minimum: 8), isUniform: true)
|
||||
|
||||
@@ -660,6 +660,13 @@ extension Ghostty {
|
||||
return event
|
||||
}
|
||||
|
||||
guard searchState == nil else {
|
||||
// We don't want to process events that
|
||||
// are supposed to be handled by SearchOverlay
|
||||
// When clicking outside, SurfaceView will become first responder automatically
|
||||
return event
|
||||
}
|
||||
|
||||
// We only want to process events that are on this window.
|
||||
guard let window,
|
||||
event.window != nil,
|
||||
|
||||
Reference in New Issue
Block a user